1.主数据库配置添加
cat /etc/my.cnf
添加:
[mysqld]
server-id=1
log-bin=master-bin
log-slave-updates=true
#需要重启mysql服务
docker restart mysql
2.主数据库设置从库复制权限
grant replication slave on *.* to 'slave'@'192.168.1.%' identified by '1234';
flush privileges;
3.导出主库数据
docker exec -it mysql bash -c 'mysqldump -u root -p1234 --default-character-set=utf8 --opt -R -E aiboxcloud_test > /aiboxcloud_test_2022102610.sql
4.主库查看数据偏移量
show master status;
5.从库数据库配置
cat /etc/my.cnf
添加:
[mysqld]
server-id=197 #server-id 不能和主库一致
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
#需要重启mysql服务
docker restart mysql
6.从库导入复制之前的主库的数据,因为主从复制是从当前开始复制
source /aiboxcloud_test_2022102610.sql
7.从库执行复制命令
change master to master_host='192.168.1.104',master_user='slave',MASTER_PORT=23306,master_password='1234',master_log_file='master-bin.000001',master_log_pos=174326105;
8.启动复制
start slave;
9.查看复制状态
show slave status\G
#确保都是YES
Slave_IO_Running: Yes
Slave_SQL_Running: Yes