docker mysql主从复制

   日期:2020-08-07     浏览:101    评论:0    
核心提示:本人采用docker 安装mysql一、前提条件:1.**SentSO 7**2.**docker**二、docker 安装 mysql1.查找镜像 docker search mysql2.下载镜像 docker pull mysql3.通过镜像创建容器并运行docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/m

本人采用docker 安装mysql

一、前提条件:

1.SentOS 7
2.docker

二、docker 安装 mysql

1.查找镜像

 docker search mysql

2.下载镜像

 docker pull mysql

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

-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

cd ..
vi etc/mysql/my.cnf

添加此配置

server_id=1

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

docker ps

停止mysql 服务

docker stop cded131186b8

启动mysql 服务

docker start cded131186b8

或者直接
重启mysql 服务

docker restart cded131186b8


运行sql

SHOW VARIABLES LIKE 'log_%';


如果log_bin 的Value 为 OFF 则未开启日志文件

运行sql

SHOW MASTER STATUS

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;

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、停止已经启动的绑定

STOP SLAVE

2、重置绑定

RESET MASTER

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;

4、启动复制

START SLAVE

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

SHOW SLAVE STATUS

留意着两个参数一定要为yes
Slave_IO_Runing = yes
Slave_SQL_Runing = yes

从库配置完成
备注如果Slave_IO_Runing ,Slave_SQL_Runing 其中一个为no,请查看相应的报错信息

SHOW SLAVE STATUS

五、测试主从数据同步

主库创建一张表

此时查看从库

操作到此,mysql主从复制已经完成

恭喜恭喜

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

六、主库查询被同步从库信息(开展知识点)

SHOW SLAVE HOSTS

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服