1、主數據庫/etc/my.cnf配置增加
server-id=1
log-bin=binlog
log-bin-index=binlog.index
然后重啟mysql服務
systemctl restart mysqld.service
查看配置是否正常
show variables like 'log_bin';
接着在主服務器創建一個從服務器可以登錄的mysql賬號
mysql>GRANT REPLICATION SLAVE ON *.*TO '用戶名'@'從服務器ip' IDENTIFIED BY '密碼';
mysql>FLUSH PRIVILEGES;
查看主服務器mysql二進制文件位置及名稱
mysql> SHOW MASTER STATUS;
2、從數據庫my.cnf配置mysql> SHOW MASTER STATUS;增加
log-bin=mysql-bin
server-id=2
接着在mysql中輸入
mysql>change master to master_host='服務器ip', master_user='test', master_password='123456', master_port=3306, master_log_file='binlog.000002', master_log_pos=1886991;
查看主從配置是否成功
mysql > START SLAVE; #開啟復制
mysql > SHOW SLAVE STATUS\G; #查看主從復制是否成功
(當看到Slave_IO_Running: YES、Slave_SQL_Running:YES才表明狀態正常)
3、常見問題解決
(1)主服務器創建從服務器賬戶出現密碼策略問題解決:
查看密碼策略
SHOW VARIABLES LIKE 'validate_password%';
執行下面語句
set global validate_password_policy=LOW;
set global validate_password_length=6;
到此OK,重新執行GRANT REPLICATION SLAVE ON *.*TO '用戶名'@'從服務器ip' IDENTIFIED BY '密碼'即可
(2)Slave_SQL_Running不停變為no解決方法
在從數據庫my.cnf配置
slave-skip-errors=1062,1053,1146 #跳過指定Last_Sql_Error:error no類型的錯誤
重啟數據庫服務
再重新配置Slave_SQL_Running為yes即可解決
(3)Slave_SQL_Running為no解決方法
進入主服務器執行
mysql>show master status; #查看binlog和master_log_pos
然后進入從庫
mysql>stop slave;
mysql>change master to master_log_file='binlog.000002',master_log_pos=93678806;
mysql>start slave;
問題即可解決
4、取消主從復制
主數據庫
reset master;
從數據庫
stop slave;
reset slave all;