環境:
master伺服器:centos5.2 mysql5.1.35 原始碼 IP:10.207.10.154
slave伺服器:centos5.2 mysql5.6.10 原始碼 IP:10.207.10.158
配置:
一master主伺服器配置
1、編輯my.ini檔案
server-id=1 //新增server-id必須為1到232–1之間的一個正整數
log-bin = /var/log/mysql/logbin/mysql-bin //開啟log-bin二進位制日誌檔案(注意logbin的許可權必須對mysql是可寫的)
binlog-do-db = yaxin //同步yaxin庫 其他庫都不同步
#binlog-ignore-db = mysql,information_schema //不同步
#character-set-server=utf8
#init_connect='SET NAMES utf8'
2、重啟mysql資料庫
二slave主伺服器配置
1、編輯my.cnf檔案(vi /etc/my.cnf)
server-id=2 slave的ID號,此處一定要大於master端。
replicate-do-db = yaxin
#character-set-server=utf8
#init_connect='SET NAMES utf8'
2、重啟mysql資料庫
三master伺服器授權
1、新增slave伺服器訪問master伺服器的帳號和許可權
mysql>grant replication slave on *.* to 'myroot'@'10.207.10.158'identified by 'abc123';
2、mysql>flush privileges;//重新整理MySQL的系統許可權相關表
3、mysql>show master status
File | Position |
+------------------+----------
| mysql-bin.000008 | 98
四同步資料
1、登入進mysql
mysql -uroot -p
2、同步
mysql>stop slave;
mysql>change master to
>master_host='10.207.10.154',
>master_user='myroot', master端建立的用於主從同步的賬戶和密碼
>master_password='abc123',
>master_log_file='mysql-bin.000008', //master端記錄的file值
>master_log_pos=98; // master端記錄的position值
mysql>start slave;
mysql>show slave status \G
檢視資訊
如果Slave_IO_Running: Yes
Slave_SQL_Running: Yes
二行同時為Yes 說明配置成功,如果不成功請檢視slave的mysql錯誤日誌,根據錯誤一步一步排查,基本上都可以解決的。
Seconds_Behind_Master: 0從庫資料同步主庫的時間,單位為秒,這個引數很重要, 若引數過大,會出現主從庫資料有同步延遲的問題
五配置完成
注意:
1、兩臺伺服器資料庫版本應一致,如果不一致,從伺服器的版本要高於主伺服器的版本。
2、MySQL進行實時資料同步,本質上是將mysql動作同步到Slave伺服器,而不是對實質的資料進行同步。所以同步開始前,兩端的資料要保持一致。
附: 解決mysql“Access denied for user 'root'@'localhost'”
mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
修改root使用者的密碼:
# mysqladmin -uroot -p password 'newpassword'