134.209.210.254
134.209.210.251
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo systemctl start docker
sudo systemctl enable docker
## 在第一台服务器上运行
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
## 在第二台服务器上运行
docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker container ls
docker exec -it mysql1 /bin/bash
apt-get update
apt-get install vim
cd /etc/mysql
vi my.cnf
## 增加以下配置内容
[mysqld]
server_id = 1
log-bin= mysql-bin
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=1
auto-increment-increment=2
重启mysql服务
service mysql restart
docker container start mysql1
## 这个用户是用来同步数据的,重新进入容器,然后登陆mysql
docker exec -it mysql1 /bin/bash
mysql -uroot -p123456
## 这里表示创建一个slave同步账号slave,允许访问的IP地址为%,%表示通配符
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
## 记住File、Position的值,在另外一个服务器中将用到
show master status;
exit;
exit;
docker inspect mysql1 | grep IPA
## 进入mysql的容器
docker exec -it mysql2 /bin/bash
## 安装vim, 如果已经安装,则可以略过
apt-get update
apt-get install vim
cd /etc/mysql
vi my.cnf
## 增加如下配置
[mysqld]
server_id = 2
log-bin= mysql-bin
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=2
auto-increment-increment=2
重启mysql 服务
service mysql restart
docker start mysql2
## 进入mysql2的docker 容器
docker exec -it mysql2 /bin/bash
mysql -uroot -p123456
## 创建用户
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
master_host即为容器IP,master_log_file和 master_log_pos即为在mone容器中,通过show master status查出来
的值;
change master to master_host='159.89.85.150',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306;
start slave ;
查看状态
show master status;
查看容器IP:
docker inspect mysql1 | grep IPA
docker exec -it mysql1 /bin/bash
mysql -uroot -p123456
change master to master_host='157.245.134.29',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306;
start slave;
登陆台服务器,进入mysql的容器,运行以下命令, 如果Slave_SQL_Running 和 Slave_IO_Running 都为 Yes,那么MySQL的主主配置设置成功。
show slave status\G;