Mysql 配置互为主从同步
Mysql 配置互为主从同步
A Server 1.1.1.1 (拥有完整数据) B Server 2.2.2.2 修改my.cnf [mysqld] 下面增加项目: A服务器如下:log-bin=mysql-bin server-id= 1 binlog-do-db=database // 修改为需要同步的数据库名称 replicate-do-db=database // 修改为需要同步的数据库名称 log-slave-updates slave-skip-errors= 1062,1060,1032 auto_increment_increment=2 auto_increment_offset=1 relay-log=mysqld-relay-bin
B服务器如下:log-bin=mysql-bin server-id= 2 binlog-do-db=database // 修改为需要同步的数据库名称 replicate-do-db=database // 修改为需要同步的数据库名称 log-slave-updates slave-skip-errors= 1062,1060,1032 auto_increment_increment=2 auto_increment_offset=2 relay-log=mysqld-relay-bin
分别在AB服务器创建同步用户shadow , 密码shadowpass
use mysql
grant replication slave on *.* to 'shadow'@'%' identified by 'shadowpass';
flush privileges;
use数据库后锁定A服务器数据库FLUSH TABLES WITH READ LOCK;
备份A服务器数据库 mysqldump 为sql文件。 导入sql文件备份到B服务器。 在AB两台服务器上分别重置master和slavereset master; reset slave;
检查AB服务器上master_log_pos,应该都为79,如果不是根据实际值修改。mysql-bin.000001也根据实际情况修改。mysql show master status;
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 79 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) 在A服务器上执行:change master to master_host='2.2.2.2',master_user='shadow',master_password='shadowpass',master_log_file='mysql-bin.000001',master_log_pos=79;
在B服务器上执行:change master to master_host='1.1.1.1',master_user='shadow',master_password='shadowpass',master_log_file='mysql-bin.000001',master_log_pos=79;
分别解锁2台服务器数据库并且启动slaveUNLOCK TABLES; start slave;
配置完成,show slave status\G 检查是否同步成功。