栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

MySQL 8.0主从同步,Linux与Window

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL 8.0主从同步,Linux与Window

MySQL主从同步 我的配置:MySQL 8.0,Centos 7(主机),Windows 10(从机) 第一步:查看binlog是否开启

MySQL8.0开始,默认开启binlog,如果是5.7的版本,也可以在my.cnf/my.ini中进行配置开启。

show variables like '%log_bin%';
主机

从机

第二步:设置配置文件 主机

Linux下的MySQL的配置文件默认在/etc/my.cnf,使用vim命令进行编辑

vim /etc/my.cnf

在[mysqld]下配置信息,注意是[mysqld]下,如果配置到其他地方会导致读取不到。

这里的binlog-do-db可以不配置,根据需求来。

从机

Windows下的MySQL配置文件默认在C:Program FilesMySQL下,打开my.ini进行编辑

同样,在[mysqld]下配置信息

第三步:重启服务 主机

Linux下MySQL重启命令

systemctl restart mysqld.service

从机

打开cmd先输入net stop mysql,然后再输入net start mysql

net stop mysql
net start mysql

第四步:设置账号 主机

通常,主从同步业务场景,是给予从库一个账号,正常是不会给予root账号的,这里我先使用我之前创建的账号zhku进行演示(你也可以使用root账号,但不建议)。

先查看该账户是否具有主从同步的权限

select Repl_slave_priv, Repl_client_priv from mysql.user where user = 'zhku';

显示没有赋予该权限

赋予权限

grant replication slave, replication client on *.* to 'zhku'@'%';
第五步:查看状态 主机 查看master状态
show master status;

file:表示同步的bin-log信息从哪个文件开始;

position:表示从file的哪个位置开始;

binlog_do_db:表示同步哪一个库(如果在配置文件中没有设置,则是空)

从机 在从机上设置主服务器IP地址
change master to master_host='120.***.***.110',master_port=3306,master_user='zhku',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=156;

这里设置master_host为主机的IP地址,master_user为登录用户,如zhku,设置master_password为密码,这里我的密码是123456,master_log_file为主机上查看master status的file,master_log_pos为主机上查看到的position。

开启slave
start slave;
查询slave状态
show slave status;

结果太多,我这里以列显示好看一点。

可以看到最关键的两个参数,倒数两个,Slave_IO_Running和Slave_SQL_Running,显示Yes则代表成功实现主从同步,第一个Slave_IO_State也显示正在等待主机发送事件信息。

到此为止就配置成功了! 遇到的问题 第一个问题:在第三步重启服务时启动失败

原因是配置文件有问题,需要检查配置文件是否配置正确,如单词拼写,数据库是否存在等。

第二个问题:在第五步时从机查看slave status时,Slave_IO_Running显示Connecting

原因:可以继续查看后面的列,找到Last_IO_Error列

查看里面的报错显示的是Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.。

前往主机查询

发现zhku账号与root账号的plugin值不同,需要将zhku账号的plugin值修改为mysql_native_password(使用update语句,这里不再赘述),修改后即可成功显示两个YES。

这里也有可能报错信息不是这个问题,该列显示connecting的问题主要有三个,一个是网络问题,一个是账号密码不对,一个是master_log_file和master_log_pos设置不对。网络问题的话可以检查防火墙是否开启,笔者这里使用的是阿里云服务器,服务器上打开了安全组,Centos上打开了防火墙端口,所以可以访问,如果是虚拟机则要看桥接模式等,这里不再赘述。

Linux上打开,关闭,查看防火墙的博文链接:

https://blog.csdn.net/weixin_45930241/article/details/123219592

第三个问题:在第五步时从机查看slave status时,Slave_IO_Running显示No

同第二个问题,查询后面的信息列,看看报错原因是什么

发现显示文件名字不一致

show master status;

在从机上使用show master status命令查看

在主机上使用show master status命令查看

比对发现,File和Position不一致。

使用stop slave命令停掉从机的slave,回到第五步,重新使用change master命令设置,最后再start slave即可,如果还不行,就再去检查两个机器的配置文件是否修改正确。

stop slave;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835091.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号