官方参考文档:http://dev.mysql.com/doc/refman/5.7/en/replication.html
一、主库配置
1. 打开配置
vim /etc/my.cnf
2. 添加
[mysqld]
log-bin=mysql-bin
server-id=252
修改后重启MySQL
3. 主库添加复制用户
CREATE USER 'repl'@'192.168.1.%' IDENTIFIED BY 'Slavepass1+'; # 弱密码不让用
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%';
4. 获取主库日志坐标
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS; # 记住 File 和 Position
5. 使用 mysqldump 创建数据快照
mysqldump --all-databases --master-data -u root -p > /tmp/dbdump.db
UNLOCK TABLES;
二、从库配置
1. 打开配置
vim /etc/my.cnf
2. 添加
[mysqld]
server-id=253
修改后重启MySQL
3. 从库执行
CHANGE MASTER TO MASTER_HOST='master_host_name', // 192.168.1.252
-> MASTER_USER='replication_user_name', // repl
-> MASTER_PASSWORD='replication_password', // Slavepass1+
-> MASTER_LOG_FILE='recorded_log_file_name', // File
-> MASTER_LOG_POS=recorded_log_position; // Position
4. 上传主库快照备份dbdump.db到从库的/tmp下
5. 导入数据
mysql -u root -p < /tmp/dbdump.db
6. 启动slave复制线程
START SLAVE;
show slave status \G # 主要查看 Slave_IO_Running: Yes lave_SQL_Running: Yes
show processlist; # 查看进程
注意:Slave_IO_Running: No 可能是 uuid 相同,请修改 auto.cnf 文件。