主库docker命令
docker run -d -p 3308:3306 --restart=always --privileged=true -v /docker/mysql7_master/data:/var/lib/mysql -v /docker/mysql7_master/my.cnf:/etc/mysql/my.cnf
-e MYSQL_ROOT_PASSWORD=123456 --name mysql7_master mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
备库docker命令
docker run -d -p 3309:3306 --restart=always --privileged=true -v /docker/mysql7_slave/data:/var/lib/mysql -v /docker/mysql7_slave/my.cnf:/etc/mysql/my.cnf
-e MYSQL_ROOT_PASSWORD=123456 --name mysql7_slave mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
主备库账号创建命令
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO REPL@'xx.xx.xx.xx' IDENTIFIED BY 'p4ssword'
主库配置添加
[mysqld]
log-bin = /var/lib/mysql/mysql-bin
server-id = 10
备库配置添加
[mysqld]
log-bin = /var/lib/mysql/mysql-bin
server-id = 2
relay_log = /var/lib/mysql/mysql-relay-bin
log_slave_updates = 1
read_only = 1
修改配置后重启服务
在主库上查看是否开启日志
show master status;
备库上设置复制配置
CHANGE MASTER TO
MASTER_HOST='xx.xx.xx.xx',--主库ip
MASTER_PORT=xxxx,--主库端口
MASTER_USER='xxxx',--主库用于备份的账号
MASTER_PASSWORD='xxxx',--主库用于备份的账号的密码
MASTER_LOG_FILE='mysql-bin.000001',--主库日志名称
MASTER_LOG_POS=3472;--主库日志位置(通过show master status查看)
查看是否启动复制show slave status;
开始复制start slave;(注意:开启复制前,备库和主库要先保持一致)
通过show slave status查看如下两项显示Yes表示成功开启
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
停止复制stop slave
查看复制进程show processlist;
在主库创建db 表 插入数据,在备库查看效果。