docker 运行mysql容器,及主从复制相关问题的处理方案

1.搜索并下载mysql镜像

  • docker search mysql
  • docker pull mysql

2.运行一个mysql容器,并在宿主机创建一个文件夹存储mysql数据。

  • docker run -it -d -p 3306:3306 --name master-v /docker/mysql/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456  mysql

3.进入容器里面的mysql:

  1. mysql -uroot -p
  2. 输入设置的密码:123456
  3. grant all privileges on *.* to 'root'@'%' with grant option; 远程root登陆密码为root
  4.  FLUSH PRIVILEGES;

 

 

4.*报错1:Authentication plugin 'caching_sha2_password' cannot be loaded     ##相关网址 https://www.itency.com/topic/show.do?id=486709
解决:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; ##新加用户为root密码为root
5.*报错2:解决mysql"Access denied for user'root'@'IP地址'"问题
解决:grant all privileges on *.* to 'root'@'%' with grant option;
            FLUSH PRIVILEGES;

 

 

6.mysql主从复制,首先是在my.cnf增加,或者自己初始化一个my.cnf映射进去容器里面

  •  log-bin=mysql-bin
  •  server-id=1
  •  binlog-do-db=test 

 7.手动修改后,需要重启容器.docker restart master

  • 进入主机容器:docker exec -it master /bin/bash
  • 进入mysql命令:mysql -uroot -p 输入密码123456
  • 查看主机 :

8.进入从机,再起一个slave的容器

  • 其他操作一样,修改一下:server-id=2
  • change master to master_host='172.17.0.6',master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=3605,master_port=3306; #你可以自己在创建一个账号,专门是用来做同步的。我这里就使用root账号
  • 查看一下是否成功

9.这样主从复制也就弄完了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值