1
|
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock |
1 2 3 |
create user 'replicate'@'%' identified by '123456'; grant replication slave on *.* to 'replicate'@'%'; flush privileges; |
1
|
select user,host from mysql.user; |
1
|
exit
|
场景一:整库复制。
1
|
vim /etc/my.cnf
|
[mysqld] server-id=2 log-bin=/data/mysql/data/mysql-bin relay_log=/data/mysql/relaylog/relay-bin
1
|
vim /etc/my.cnf
|
[mysqld] server-id=3 log-bin=/data/mysql/data/mysql-bin relay_log=/data/mysql/relaylog/relay-bin
场景二:部分复制。
例如同步test库,不同步mysql库、information_schema库和performance_schema库。
1
|
vim /etc/my.cnf
|
[mysqld] server-id=2 log-bin=/data/mysql/data/mysql-bin relay_log=/data/mysql/relaylog/relay-bin replicate-do-db=test replicate-ignore-db=mysql,information_schema,performance_schema
1
|
vim /etc/my.cnf
|
[mysqld] server-id=3 log-bin=/data/mysql/data/mysql-bin relay_log=/data/mysql/relaylog/relay-bin replicate-do-db=test replicate-ignore-db=mysql,information_schema,performance_schema
1
|
service mysql restart |
或者
1 2 |
/usr/local/mysql/bin/mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf & |
1 2 |
ps -ef | grep mysql netstat -anpt | grep mysql |
1
|
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock |
同步方式有两种方式:传统方式和GTID方式。MySQL版本在5.7及以上时推荐使用GTID方式。
1 2 3 4 5 |
set global enforce_gtid_consistency='off'; set global gtid_mode='on_permissive'; set global gtid_mode='off_permissive'; set global gtid_mode='off'; show variables like '%gtid_mode%'; |
1 2 3 4 5 |
set global enforce_gtid_consistency='on'; set global gtid_mode='off_permissive'; set global gtid_mode='on_permissive'; set global gtid_mode='on'; show variables like '%gtid_mode%'; |
1
|
change master to master_host='192.168.220.58',master_port=3306,master_user='replicate',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=155; |
1
|
change master to master_host='192.168.220.58',master_port=3306,master_user='replicate',master_password='123456',master_auto_position=1; |
第一次部署主从复制的时候需要执行change master命令指定主库以及同步方式,以后在不改变主库首位的情况下不用执行change master命令。
1
|
start slave; |
停止从库命令:
stop slave;
1
|
show slave status\G; |
下面两项值均为Yes,表示从库启动成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果Last_IO_Error报错“The slave I/O thread stops because master and slave have equal MySQL server UUIDs......”,参考查看MySQL主从复制状态时提示The slave IO thread stops的解决方法解决后,重新查看从库状态。
1
|
exit
|
1 2 |
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock show slave hosts; |