centos主机:192.168.0.202
centos从机:192.168.0.203
一、主从都执行以下步骤
1.创建好文件夹 mysql
2.cd mysql
3.docker 拉取mysql镜像,5.7
docker pull mysql
4.主机运行容器
docker run -p 3306:3306 --name mysql -v /mnt/sdc/data/mysql/logs:/var/log/mysql -v /mnt/sdc/data/mysql/data:/var/lib/mysql -v /mnt/sdc/data/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=sytgkmysql4321 -d mysql:5.7
5.从机运行容器
docker run -p 3306:3306 --name mysql -v /mnt/sdc/data/mysql/logs:/var/log/mysql -v /mnt/sdc/data/mysql/data:/var/lib/mysql -v /mnt/sdc/data/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=sytgkmysql4321 -d mysql:5.7
6.进入主机mysql配置
docker exec -it mysql-main /bin/bash
7.使用root进入mysql: mysql -uroot -p (注意从机不用执行这步)
# 创建一个账号
CREATE USER 'master'@'192.168.0.%' IDENTIFIED WITH mysql_native_password BY '123456';
# 给予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'master'@'192.168.0.%';
8.修改etc/mysql/my.cnf 文件(无法vim,参考 9)
9.安装vim:①先执行 apt-get update ②在进行 apt-get install vim
10.增加这两行
server-id = 1
log-bin=mysql-bin
11.增加后这样,从机也一样增加,只不过从机 server-id = 2
12.停止主从容器,重启容器
docker stop mysql-master
docker stop mysql-slave
docker start mysql-master
docker start mysql-slave
13.登录进主mysql容器,通过mysql查看当前状态
show master status;
14.登入从机mysql执行如下
①连接主机账号密码,开始位置信息
CHANGE MASTER TO MASTER_HOST='192.168.0.202',MASTER_USER='master',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=156;
②开启同步线程进行复制
start slave;
③查看主从复制状态
show slave status\G
如下两个都为yes 则成功;
测试:!!!