阿里云 centos7 安装mysql(docker) 并配置主从复制

最近公司打算把多个库合并

需要一主两从

在此留下笔记  以便日后使用

 

安装docker

yum install docker -y

 启动docker 并设置开机启动

systemctl start docker
systemctl enable docker

 查看版本

docker version

 拉取镜像

docker pull mysql:5.7.22
创建目录结构
mkdir -p /data/mysql/data /data/mysql/conf

运行容器

docker run --name mysql -p 3306:3306 -v /data/mysql/data:/var/lib/mysql /data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.22
--name 为容器指定名称,这里是master

-p 将容器的指定端口映射到主机的指定端口,这里是将容器的3306端口映射到主机的3306端口

-v 映射目录

-e 设置环境变量,这里是指定root账号的密码为root

-d 后台运行容器,并返回容器ID

mysql:5.7.22 指定运行的镜像



设置环境变量,更多设置请参考 my.cnf
--server-id=1        服务器id

--log-bin=mysql-bin 日志文件前缀
#--replicate-do-db  可以指定同步哪个数据库,多个用逗号分隔
如--replicate-do-db=db1,db2


拷贝默认配置文件进行修改 

容器内路径 /etc/mysql/mysql.conf.d/mysqld.cnf
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /data/mysql/conf

修改本地上配置文件

 本地路径 /data/mysql/conf/mysqld.cnf

在[mysqld] 节点添加
#服务器id 同一局域网不要重复, 可以用ip后一位 server
-id=1
#二进制日志开启, 指定文件前缀 log-bin=mysql-bin
#需要同步的数据库
replicate-do-db=db1,db2

 

重启容器  

docker restart mysql

 

设置容器开机自动启动(也可以在创建容器时 设置环境变量(--restart=always)

docker update --restart=always mysql

 

主从配置

#创建连接账号(指定从库ip) 多个可以创建多个
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'root'@'从库ip';
#查看marster 状态 记住File,Position 从库连接必要参数 show master status;

 

 

 

 

从库配置

 

进入从库执行sql

#停止同步

stop slave;

#更改同步参数 master_log_file  ,  master_log_pos  在主库获取
change master
to master_host="主库ip", master_user="root", master_password="root", master_log_file="mysql-bin.000001", master_log_pos=2172; #开始同步
start slave; #刷新同步(马上生效) flush
privileges; #查看同步状态 show slave status;

 

 

如果 Slave_IO_Running , Slave_SQL_Running   都是Yes 表示同步成功

 

转载于:https://www.cnblogs.com/shouniu/p/11178402.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值