mysql主從復制怎么配置?有哪些注意事項?

mysql主從復制配置步驟如下:一、主庫開啟二進制日志并創(chuàng)建復制賬號;二、從庫設(shè)置唯一server-id并執(zhí)行change master命令啟動復制;三、注意server-id沖突、網(wǎng)絡(luò)連接、數(shù)據(jù)一致性等問題;四、定期監(jiān)控復制狀態(tài),使用工具檢查延遲,及時處理復制錯誤。配置完成后需持續(xù)維護以確保穩(wěn)定性。

mysql主從復制怎么配置?有哪些注意事項?

mysql主從復制是數(shù)據(jù)庫高可用和讀寫分離的基礎(chǔ)設(shè)置之一,配置得當可以提升系統(tǒng)的性能與穩(wěn)定性。下面直接講講怎么配、要注意什么。


一、主庫配置:開啟日志并授權(quán)

首先要在主庫上開啟二進制日志(binlog),這是主從同步的基礎(chǔ)。修改MySQL的配置文件(通常是my.cnf或my.ini),在[mysqld]段中添加或確認以下幾項:

server-id=1 log-bin=mysql-bin

然后重啟MySQL服務(wù)使配置生效。接下來需要創(chuàng)建一個用于復制的賬號,并授予REPLICATION SLAVE權(quán)限:

CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;

注意這里的IP限制要根據(jù)實際網(wǎng)絡(luò)情況調(diào)整,不要隨便用通配符“%”放通所有IP,避免安全風險。


二、從庫配置:指向主庫并啟動復制

從庫的配置也很關(guān)鍵,同樣修改配置文件,設(shè)置唯一的server-id(不能和主庫一樣):

server-id=2

重啟MySQL后,在從庫執(zhí)行CHANGE MASTER命令,指定主庫的地址、端口、用戶、密碼以及當前binlog的位置:

CHANGE MASTER TO MASTER_HOST='主庫IP', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  4;

位置可以從主庫執(zhí)行SHOW MASTER STATUS;獲取。完成后啟動復制線程

START SLAVE;

檢查狀態(tài)是否正常可以用SHOW SLAVE STATUSG,重點關(guān)注Slave_IO_Running和Slave_SQL_Running是否為Yes。


三、常見問題及注意事項

  • server-id沖突:主從服務(wù)器的server-id必須不同,否則復制會失敗。
  • 網(wǎng)絡(luò)連接問題:確保從庫能訪問主庫的3306端口,防火墻規(guī)則要放開。
  • 數(shù)據(jù)一致性問題:如果從庫已有數(shù)據(jù),一定要提前做好主從數(shù)據(jù)的一致性校驗,否則可能引起SQL錯誤。
  • 忽略表的問題:可以通過配置replicate-ignore-db或replicate-ignore-table來控制哪些庫或表不需要同步。
  • 延遲復制:某些場景可以考慮啟用延遲復制(delayed replication),防止誤操作導致的數(shù)據(jù)丟失

另外,建議定期檢查主從之間的延遲情況,可以通過Seconds_Behind_Master字段來判斷。


四、監(jiān)控與維護建議

日常運維中,建議使用腳本或工具定期檢查主從狀態(tài),比如使用pt-heartbeat來精確統(tǒng)計復制延遲。也可以結(jié)合zabbix等監(jiān)控系統(tǒng)進行告警。

遇到復制錯誤時,先看SHOW SLAVE STATUSG中的Last_SQL_Error信息,大多數(shù)時候是語句沖突或者表不存在之類的錯誤。如果是非關(guān)鍵錯誤,可以跳過錯誤繼續(xù)執(zhí)行:

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;

但這種方法需謹慎使用,避免掩蓋真實問題。


基本上就這些,主從復制本身不復雜,但細節(jié)處理不到位容易出問題。配置好以后記得持續(xù)關(guān)注運行狀態(tài),別以為一次配置就能長期穩(wěn)定運行。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享