kali+win10+dockermysql8主从配置超详细(有问题请留言)

大家好啊,黄油弟好久没写博客了。最近在看尚硅谷的谷粒商城,寻思着也搞个分布式玩玩,但是得要mysql主从配置呀。心想这还有什么难的,结果前前后后配了1天半,这边就把详细过程和坑分享给大家。(关于工具的安装就不废话啦)

 

请大家有点耐心,你碰到的问题下面可能就有!

 

现在docker盛行,那就直接用docker pull mysql安装;既然是主从,那肯定要开两个容器啦,一个作为主服务器来写,一个作为从服务器来读。具体参考的命令和图片如下,也就是将mysql配置文件挂载到指定的目录下,更好找寻,master类似slave配置:
 

docker run -p 3307:3306 --name mysql-slave 
-v /mysql/slave/conf:/etc/mysql/conf.d 
-v /mysql/slave/logs:/logs 
-v /mysql/slave/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123456 -d mysql

 

在接下来就需要对数据库进行配置,配置文件是你之前挂载目录conf下的my.cnf,但是原本是没有的,需要你自建一个。(这里不要去修改其他的cnf文件,比如data里的auto.cnf,会产生意外的结果),具体内容可参考下方(master的):

从上至下依次为编码设置、服务器id设置、只读与否设置、同步的数据库与不同步的数据库设置(slave从数据库只需修改id和read-only)

接下来便是在windows上测试两个mysql连接,这时候会出现第一个问题!

2003 - Cant't connect to MySQL server on 'ip'(10060 "Unknown error")

我是一个很特殊的原因,我在my.cnf中设置了免密登陆,但是在容器里又设置了123456的密码,因此导致连接不上。只要吧设置的免密去掉就可以了!

之后在容器内部进行主从服务器的设置。

主服务器:

  1. grant all privileges on *.* to 'root'@'%' with grant option;   //给root分配权限
  2. flush privileges;
  3. create user 'backup'@'%' identified by '123456';  //创建用户名密码
  4. grant peplication slave on *.* to 'backup'@'%';    //分配slave权限给它
  5. 可在mysql数据库的user表里查看分配结果

这里有两个要点:1.如果提示你权限不足,可能是因为你以无密登陆,此时必须改为有密码登陆!2.mysql8和mysql5有区别,mysql5可以创建授权连打,但是mysql8必须分开!

从服务器:

  1. change master to                                master_host='192.168.226.129',master_user='backup',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=1069,master_port=3306,get_master_public_key=1;     
  2. start slave;   //开启从状态
  3.  show slave status\G;     //查看状态

这里需要注意的就是参数别打错,参数在主服务器端用show master status;查看。

有些小伙伴可能注意到我在连接master时加粗了一句命令get_master_public_key=1,这个是针对错误ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

也就是如果你不加这句,slave会连接失败一直处于connecting状态,这个报错在status里会有。这是mysql8的原因,连接时加上这条命令就ok了。

最后效果如下:

在指定数据库内进行添加删除表等操作,从数据库也能马上获得结果了。但是其实整个过程中还有其他一些问题,但是忘了,你们碰到了可以留言,一起解决它

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值