docker mysql主从复制(转载)

本文详述使用Docker安装MySQL的过程,并配置主从复制。覆盖安装、配置、测试等步骤,确保数据同步无误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人采用docker 安装mysql

一、前提条件:
1.SentOS 7
2.docker

二、docker 安装 mysql
1.查找镜像

docker search mysql
1
2.下载镜像

docker pull mysql
1
3.通过镜像创建容器并运行

docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
1
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。

-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。

-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

4.在两台机器上都安装好mysql并启动测试,保证能正常使用,通过 docker ps

在这里插入图片描述

三、设置主库
192.168.203.137
进入docker mysql 容器

docker exec -it cded131186b8 bin/bash
1
在这里插入图片描述

cd …
vi etc/mysql/my.cnf
1
2
添加此配置

server_id=1
1
在这里插入图片描述

返回服务器根目录
查看mysql容器id

docker ps
1
停止mysql 服务

docker stop cded131186b8
1
启动mysql 服务

docker start cded131186b8
1
或者直接
重启mysql 服务

docker restart cded131186b8
1
在这里插入图片描述
运行sql

SHOW VARIABLES LIKE ‘log_%’;
1
在这里插入图片描述
如果log_bin 的Value 为 OFF 则未开启日志文件

运行sql

SHOW MASTER STATUS
1
File=binlog.000004,Position=156,从库配置需要这两个参数
在这里插入图片描述
主库配置完成

四、设置从库
执行复制主机命令

CHANGE MASTER TO MASTER_HOST=‘192.168.203.137’, MASTER_PORT=33060,MASTER_USER=‘root’, MASTER_PASSWORD=‘123456’, MASTER_LOG_FILE=‘binlog.000004’,MASTER_LOG_POS=156;
1
MASTER_HOST = 主库ip
MASTER_PORT = 主库mysql端口
MASTER_USER = 主库用户名
MASTER_PASSWORD = 主库密码
MASTER_LOG_FILE = 主库日志文件(对应主库File=binlog.000004)
MASTER_LOG_POS = 主库日志位置(对应主库Position=156)
在这里插入图片描述
此时我这提示了
错误代码: 3021

This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL ‘’ first.
1
是因为我之前绑定过其他主库,一个数据库只能绑定一个主库。我们需要更换,不能直接用此命令更换主库配置

解决办法
1、停止已经启动的绑定

STOP SLAVE
1
2、重置绑定

RESET MASTER
1
3、执行复制主机命令

CHANGE MASTER TO MASTER_HOST=‘192.168.203.137’, MASTER_PORT=33060,MASTER_USER=‘root’, MASTER_PASSWORD=‘123456’, MASTER_LOG_FILE=‘binlog.000004’,MASTER_LOG_POS=156;
1
4、启动复制

START SLAVE
1
此时查看我们从看的主从配置情况

SHOW SLAVE STATUS
1
留意着两个参数一定要为yes
Slave_IO_Runing = yes
Slave_SQL_Runing = yes
在这里插入图片描述
从库配置完成
备注如果Slave_IO_Runing ,Slave_SQL_Runing 其中一个为no,请查看相应的报错信息

SHOW SLAVE STATUS
1
在这里插入图片描述

五、测试主从数据同步
主库创建一张表
在这里插入图片描述
此时查看从库
在这里插入图片描述
操作到此,mysql主从复制已经完成

恭喜恭喜

复制操作主->从 包括
1.建,改,删 库
2.建,改,删 表
3.增,改,删 数据
4.增,改,删 索引,存储过程…

六、主库查询被同步从库信息(开展知识点)
SHOW SLAVE HOSTS
1
在这里插入图片描述

原文链接:https://blog.youkuaiyun.com/weixin_40887953/article/details/107794802?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-5.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-5.nonecase&request_id=5f2cc4958c9fb674c672355c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值