MySQL主從介紹:
MySQL主從又叫做Replication、AB複製。簡單講就是A和B兩臺機器做主從後,在A上寫數據,另外一臺B也會跟着寫數據,兩者數據實時同步的
MySQL主從是基於binlog的,主上須開啓binlog才能進行主從。
主從過程大致有3個步驟
1)主將更改操作記錄到binlog裏
2)從將主的binlog事件(sql語句)同步到從本機上並記錄在relaylog裏
3)從根據relaylog裏面的sql語句按順序執行
主上有一個log dump線程,用來和從的I/O線程傳遞binlog
從上有兩個線程,其中I/O線程用來同步主的binlog並生成relaylog,另外一個SQL線程用來把relaylog裏面的sql語句執行
如圖:
準備工作:
準備兩臺機器,兩臺機器都需要安裝好mysql,並且啓動mysql服務。安裝mysql請查看博主前面的文章!
配置主:
①修改配置文件/etc/my.cnf,增加server-id=129和log_bin=centos7-1;修改完成後,重啓mysql服務。
②創建一個測試的zrlog庫,把測試庫備份出來,在從上需要導入。
③創建用作同步數據的用戶
④對做主從配置的數據庫進行上鎖,目的是配置期間停止讀寫操作。
⑤查看主的狀態,配置同步時修改使用到這裏的File和Position數據。
主上配置完成了,接上來去從上配置。
配置從:
①修改配置文件/etc/my.cnf,增加server-id=128(不能和主一樣);修改完成後,重啓mysql服務。
②把主上的測試庫zrlog,主上使用rsync同步到從上。然後從上進行導入
③然後進入mysql進行配置
④查看是否配置成功,查看下面的參數。
配置成功後,別忘記到主上進行解鎖操作:unlock tables;
測試主從同步:
①在主上的mysql修改數據,然後去從上查看是否同步即可。
從上查看:
配置失敗情況:
Slave_IO_Running:connecting
排錯步驟:①網絡問題,使用ping命令和telnet命令測試;如ping ip看看能不能ping通,telnet ip 3306 看看3306端口是否開啓 ②密碼對不對 ③file和pos有沒有對應(在主上show master status;) ④還要注意防火牆是否關閉了和iptables規則等等。
mysql -urepl -p123456 -h192.168.139.129 遠程連接失敗,查看mysql日誌:
修改配置文件/etc/my.cn,在[mysqld]下加入skip-name-resolve。 然後重啓服務即可!