MySql Docker 主主配置

MySql 主主

准备2台Linux服务器,并且在两台服务器上,同时安装docker,国内的同学可以使用aliyun的镜像安装。

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

然后,启动MySql 容器

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

配置第一台服务器的mysql

# 进入mysql 容器
docker container ls 
docker exec -it mysql1 /bin/bash

# 安装vim, 如果已经安装,则可以略过
apt-get update
apt-get install vim

# 进入mysql 服务器之后,修改配置文件
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;


# 查看容器IP, 退出mysql
exit;
exit;
docker inspect mysql1 | grep IPA

配置第二台mysql 服务器

# 进入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
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='172.17.0.2',master_user='slave',master_passwor d='123456',master_log_file='mysql- bin.000001',master_log_pos=443,master_port=3306;

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

# 设置mtwo主库链接,参数详细说明同上
// change master to
// master_host='172.17.0.3',master_user='slave',master_passwor d='123456',master_log_file='mysql-bin.000003',master_log_pos=443,master_port=3306;

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;

# 查看状态
show slave status\G;
posted @ 2021-01-03 23:34  scogee  阅读(183)  评论(0编辑  收藏  举报