MySql主從同步配置及實現
阿新 • • 發佈:2018-01-29
數據庫集群 授權 問題 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主從同步配置及實現