共计 4484 个字符,预计需要花费 12 分钟才能阅读完成。
怎样简单解析 mysql 主从复制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
mysql 主从复制(冷备)
1.create repl user on master
grant replication slave on *.* to repl @ 10.124.110.116 identified by doudou123
root@(none) 10:13 grant replication slave on *.* to repl @ 10.124.110.116 identified by doudou123
Query OK, 0 rows affected (0.04 sec)
2.enable BINLOG and set server-id in my.conf and restart server
[mysqld]
log-bin = /mysql/data/3307/mysql-bin.log
server-id = 113
root@(none) 10:35 show variables like %log_bin%
+———————————+——————————-+
| Variable_name | Value |
+———————————+——————————-+
| log_bin | ON |
| log_bin_basename | /mysql/data/3307/mysql-bin.log| ==success
| log_bin_index | /mysql/data/3307/binlog.index |
| log_bin_trust_function_creators | ON |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+———————————+——————————-+
root@(none) 10:36 show variables like %server_id%
+—————-+——-+
| Variable_name | Value |
+—————-+——-+
| server_id | 113 | ==success
| server_id_bits | 32 |
+—————-+——-+
2 rows in set (0.00 sec)
3.flush tables
flush tables with read lock;
root@(none) 10:42 flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
4.show file and position
show master status;
root@(none) 14:57 show master status;
+——————+———-+————–+——————+——————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————+———-+————–+——————+——————-+
| mysql-bin.000008 | 120 | | | |
+——————+———-+————–+——————+——————-+
5.cold backup
tar -cvf 3307data.tar 3307
6.unlock tables on master
unlock tables;
root@(none) 14:18 unlock tables;
Query OK, 0 rows affected (0.02 sec)
7.set only server-id in my.conf on slave
[mysqld]
server-id = 114
vi auto.cnf
server_uuid=57735006-38f1-11e6-862c-005056beb65f
8.startup server with –skip-slave-start on slave
mysqld_multi start 3307
9.set user,ip,port,replication log and position on slave
change master to
master_host= 10.124.110.113 ,
master_port=3307,
master_user= repl ,
master_password= doudou123 ,
master_log_file= mysql-bin.000008 ,
master_log_pos=120;
mysql change master to
– master_host= 10.124.110.113 ,
– master_port=3307,
– master_user= repl ,
– master_password= doudou123 ,
– master_log_file= binlog.000008 ,
– master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.05 sec)
10.startup slave process
start slave;
mysql start slave;
Query OK, 0 rows affected (0.01 sec)
11.show processlist on slave
show processlist \G
mysql show processlist \G
*************************** 1. row ***************************
Id: 1
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 10060
State: Waiting on empty queue
Info: NULL
*************************** 2. row ***************************
Id: 2
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: init
Info: show processlist
*************************** 3. row ***************************
Id: 3
User: system user
Host:
db: NULL
Command: Connect
Time: 19
State: Connecting to master == Waiting for master to send event is right. and some errors because password is wrong or server_uuid is the same.
## find errors using show slave status \G and modify server_uuid using auto.cnf and find server_uuid using show variables like %server_uuid% ##
Info: NULL
*************************** 4. row ***************************
Id: 4
User: system user
Host:
db: NULL
Command: Connect
Time: 19
State: Slave has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
4 rows in set (0.00 sec)
this is all right !!!!
mysql show processlist \G
*************************** 1. row ***************************
Id: 1
User: system user
Host:
db: NULL
Command: Connect
Time: 31769
State: Slave has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
*************************** 2. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 946
State: Waiting for master to send event
Info: NULL
*************************** 3. row ***************************
Id: 3
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 946
State: Waiting on empty queue
Info: NULL
*************************** 4. row ***************************
Id: 5
User: root
Host: localhost
db: test
Command: Query
Time: 0
State: init
Info: show processlist
4 rows in set (0.00 sec)
12.test change rows on master
use test
show tables;
create table repl_test(id int);
insert into repl_test values(1),(2),(3);
insert into repl_test values(4),(5),(6);
insert into repl_test values(7),(8),(9);
13.show test rows on slave
use test
show tables;
select * from repl_test;
+——+
| id |
+——+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+——+
9 rows in set (0.00 sec)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。