docker搭建mysql主从配置 记录一下午的踩坑记录

   日期:2020-05-12     浏览:99    评论:0    
核心提示:首先你要安装docker 并且pull一个MySQL,docker这里不做多说注意mysql版本一定要够 我这里也用是5.7#docker pull mysql:5.7 拉一个5.7的镜像docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123345 -d mysql:5,7docker跑容器 这里容器3339端口映射主机3306端口(容器端口这大家随意哈)--name起个容器名 (你喜欢master也一...运维

首先你要安装docker 并且pull一个MySQL,docker这里不做多说

注意mysql版本一定要够 我这里也用是5.7 

#docker pull mysql:5.7    拉一个5.7的镜像

docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123345 -d mysql:5,7

docker跑容器  这里容器3339端口映射主机3306端口(容器端口这大家随意哈)--name起个容器名 (你喜欢master也一样)

注意:-e后面是设置初始化密码的  如果不打 你无法使用Navicate工具远程链接数据库;

从数据库同理 docker run -p 3340:3306 --name myslave -e MYSQL_ROOT_PASSWORD=123345 -d mysql:5,7

成功后docker ps -a看一下所有容器(不带-a是查看这个在运行的容器);

然后用navicate进行连接 成功后:

建议用xshell ,本人宝塔终端敲卡的差点当场去世

docker exec -it  5b4f9e344d91 /bin/bash;

进入容器内 5b4f9e344d91是容器ID 不要搞错

如图进入后找到my.cnf文件修改配置,但是由于是docker安装的 这里还需要安装一下vim;

直接装vim还会爆错 ,必须先更新一下;

apt-get update;更新

apt-get install vim;搞vim下来然后vim修改my.cnf文件(友情提示coder菜鸡 1.vim 文件名 2.i  3光标处输入4 敲esc按键后 :wq报存);

修改配置后 service mysql restart;重启mysql 但是重启会导致当前的docker容器停止,因为容器只有特么的mysql 停了就全听了这里好奇的可以自己去搜docker的运行机制;

再次运行容器 docker start mymysql ; 这里mymysql是我的容器名你喜欢容器ID也一样

mysql -u root -p 进入收据库终端 运行下面创建用户

create user 'slave'@'%' identified by '123456';

grant replication slave,replication client on *.* to 'slave'@'%';

这里有可能回报错 因为mysql已经有slave用户了;

================================分界线=====================================

这里同理去配置从数据库myslave的my.cnf文件

docker inspect --format='{{.NetworkSettings.IPAddress}}' mymysql

  查看当前容器的ip地址,mymysql 注意是容器的 mysqlslave同理

进入查看主数据库mysql终端

输入show master status;

请记住这里 file的文件和位置下面要用到

 

change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 2830, master_connect_retry=50;

这里的坑说两句:

master_port:master端口号也是容器的端口

master_user:数据同步的用户

master_password:同步的用户的密码

master_log_file:指定 slave 从哪个日志文件开始复制数据,红框中 File 字段的值

master_log_pos: Position 字段的值

master_connect_retry:链接失败的重连时间,单位是秒,默认是60秒

这里千万不要有空行

然后在我们的从数据库mysql终端执行

start slave;开启主从模式

show slave status \G;查看状态

标红出都是YES就成功了

【这里有俩坑  如果两个参数都不是yes 查看   提示 Last_IO_Error: Got fatal error 1236 from master 如果后面提示 binlog 那八成是找不到主数据库的备份文件了

1.从数据库先stop slave;停止主从

2.去主数据库flush logs 更新日志,再show master status 查看file与postion

3.从数据 重新配置CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=577;

再重新start slave;开启主从;

4.从数据库show slave status\G;会有奇迹

在主数据库创建表同数据库就也会出现

这都解决不了问题 请自裁吧 

 

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

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

13520258486

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

24小时在线客服