標籤:mysql-bin mysql主從複製 建立 mys 叢集 事務 running .com ble
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主從同步配置及實現