Linux下mysql主從複製配置(CentOS7)
主從複製需要注意:
1、資料庫版本必須一致
2、資料庫名稱必須一致 例如db888
3、配置主資料庫開啟二進位制日誌
4、主資料庫、從資料庫必須具有一個唯一的server-id
配置主從資料庫複製:
一:操作主庫
1、修改主庫的配置檔案
vi /etc/my.cnf
找到[mysqld] ,在下面新增
binlog-do-db=db888 //多個庫同步用逗號隔開 binlog-ignore-db=mysql log-bin=mysql-bin //啟用二進位制日誌 server-id=94 //伺服器唯一ID,一般取IP最後一段
2、重啟mysql服務
systemctl restart mysqld
3、登入主伺服器 mysql
mysql -uroot -p123
4、建立從伺服器獲取日誌檔案的賬號
grant replication slave on *.* to 'backup'@'%' identified by '123456';
重新整理許可權
flush privileges;
5、檢視主伺服器狀態
show master status;
注意:File 、 Position 很重要,記錄下來,稍後配置從庫的時候要用到
二:操作從庫
1、修改從庫的配置
vi /etc/my.cnf
[mysqld] 後面增加 server-id=95 //伺服器唯一ID,一般取IP最後一段
2、重啟mysql伺服器
systemctl restart mysqld
3、登入從庫 mysql
mysql -uroot -p123
4、配置從資料庫掛載主庫
mysql> change master to -> master_host='10.10.13.94', -> master_port=3306, -> master_user='backup', -> master_password='123456', -> master_log_file='mysql-bin.000001', //主伺服器最後記錄下來的File 日誌檔名稱 -> master_log_pos=583; //主伺服器最後記錄下來的Position 程序號
5、啟動從庫
start slave;
6、檢視主從複製狀態
show slave status \G;
如果看到 Slave_IO_Running: Yes Slave_SQL_Running: Yes
說明配置成功,操作資料庫即可。
注:
錯誤處理:
如果出現此錯誤:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
因為是mysql是克隆的系統所以mysql的uuid是一樣的,所以需要修改。
解決方法:
刪除/var/lib/mysql/auto.cnf檔案,重新啟動服務