1. 程式人生 > >MySql主從同步配置及實現

MySql主從同步配置及實現

數據庫集群 授權 問題 show 不可 leg class status replicat

mysql主從復制

隨著技術的發展,在實際的生產環境中,由單臺MySQL數據庫服務器不能滿足實際的需求。此時數據庫集群就很好的解決了這個問題了。采用MySQL分布式集群,能夠搭建一個高並發、負載均衡的集群服務器。在此之前我們必須要保證每臺MySQL服務器裏的數據同步。數據同步我們可以通過MySQL內部配置就可以輕松完成,主要有主從復制和主主復制。

MySQL5.6開始主從復制有兩種方式:基於日誌(binlog);基於GTID(全局事務標示符)。此文章是基於日誌方式的配置步驟。


環境說明

  • master數據庫IP:192.168.1.1
  • slave數據庫IP:192.168.1.2
  • mysql版本:5.5.38

主從復制

1.在主從數據庫配置文件,一般Linux中的
MySQL配置文件都在/etc/my.cnf(windows中的配置文件為mysql.ini)。這裏以同步test庫為例子,
配置如下:
[mysqld]
#數據庫ID號, 為1時表示為Master,其中master_id必須為1到232–1之間的一個正整數值,主從server-id不能一樣;
server-id=1
#啟用二進制日誌; 
log-bin=mysql-bin 
sync-binlog=1
#需要同步的二進制數據庫名; 
binlog-do-db=test

保存文件,重啟MYSQL。

2.構建主從復制,
第一步:在192.168.1.1(主)中創建一個192.168.1.2(從)可以登錄的MySQL用戶,這裏以mysql119用戶作為例子。
mysql>CREATE USER ‘mysql119‘@‘@‘ IDENTIFIED BY ‘123456‘;
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql119’@’192.168.1.%’ IDENTIFIED BY ‘123456’;
mysql>FLUSH PRIVILEGES;
第二步:
        查看192.168.1.1 主MySQL服務器二進制文件名與位置
        mysql>SHOW MASTER STATUS;

技術分享圖片

第三步:告知從庫二進制文件名與位置
在192.168.1.2中執行:
mysql>CHANGE MASTER TO

         >MASTER_HOST=’192.168.95.11’,

         >MASTER_USER=’mysql119’,

         >MASTER_PASSWORD=’123456’,

         >MASTER_LOG_FILE=’mysql-bin.000007’,

         >MASTER_LOG_POS=525;

完成主從復制配置

4.測試主重復制
在192.168.1.2中
mysql>SLAVE START;   #開啟復制
mysql>SHOW SLAVE STATUS\G   #查看主從復制是否配置成功

如圖:
技術分享圖片
當看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明狀態正常

實際測試:
查看主重庫的test庫的test_table,然後往主的test庫插入一條數據再觀察從test庫的數據,如圖:

技術分享圖片

註意:
1.主重mysql版本最好保持一致,避免因版本差異出現不可預知的問題。
2.出現從數據庫連接不上主數據庫,查看是否授權問題。
3.在配置主從復制的時候,備份master數據前先鎖表,保證數據一致性。

如有問題,歡迎指正!

MySql主從同步配置及實現