linux服務器mysql數據庫同步(兩台)


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM