前置条件
引擎为InnoDB。
检查两台MySQL的配置文件my.cnf,确保:
- server_id没有注释,且值不同
- binlog_format = mixed
- log-bin = mysql-bin有设置
- binlog-do-db = payplus需要包含待同步的库(注意:若有多个需要每个一行,略坑)
注意:修改完配置文件需要重启服务才生效。
添加MYSQL用户
GRANT REPLICATION SLAVE,FILE ON *.* TO 'slave'@'10.21.11.2' IDENTIFIED BY 'slave';
FLUSH PRIVILEGES;
主库上导出当前数据
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --databases payplus > /install/payplus_export.sql
备机上导入数据
# 去掉create database时编码处的注释(以下后半句/*!40100,*/两处)
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `payplus_dev` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
# 导入
mysql -u root -p < /install/payplus_export.sql
备机上执行
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='10.21.11.1',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=120;
START SLAVE;
其中master_log_file和master_log_pos参数的值在payplus_export中前面部分。