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 *.* toslave@192.168.0.180identified 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******
#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(缓存文件)