mysql的AB複製
mysql的AB複製是實時同步的,不需要停服務,不需要鎖表。
分兩種情況
一.一臺剛剛安裝好的mysql
主庫:
#vi /etc/my.cnf
log-bin=mysql
server-id=134
#service mysqld restart
#mysql -uroot -p******;
mysql>show master status 查看position (便於後面備份)
mysql>grant replication slave on *.* to [email protected] identified by '******' 爲slave用戶授權。
從庫:
#vi /etc/my.cnf
server-id=180
#service mysqld restart
#mysql -uroot -p******
mysql>change master to
mysql>master_host = '192.168.0.134',
mysql>master_user ='slave',
mysql>master_password='******',
mysql>master_log_file ='mysql.000001',
mysql>master_log_pos =106;
mysql>slave start; 啓動同步。
mysql>show slave status\G; 查看是否同步。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
若出現以上兩個Yes則同步成功。
二 一臺已經運行了一段時間的mysql服務器
主庫:
mysql>show master status; 查看position便於後續同步
#mysqldump --all-databases --lock-all-tables --flush-logs --master-data -uroot -p******>/tmp/all.sql
#scp /tmp/all.sql 192.168.0.180:/tmp
#vi /etc/my.cnf
log-bin=mysql
server-id=134
#service mysqld restart
從庫
#mysql -uroot -p******</tmp/all.sql
#vi /etc/my.cnf
server-id=180
#service mysqld restart
mysql>change master to
mysql>master_host = '192.168.0.134',
mysql>master_user ='slave',
mysql>master_password='******',
mysql>master_log_file ='mysql.000001',
mysql>master_log_pos =106;
mysql>slave start; 啓動同步。
mysql>show slave status;
(注意)
1 如果出問題可能是防火牆,日誌問題。
2.如果change master to 敲錯的情況下 先slave stop 再change master to。
3.change master to的優先級高於master.info 。#cat master.info(緩存文件)