mysql8.0主从配置_mysql8主从配置
发布日期:2021-06-24 07:11:25 浏览次数:5 分类:技术文章

本文共 1415 字,大约阅读时间需要 4 分钟。

如图,主从同步的流程大致是从服务器有一个IO线程读取主服务的binlog日志,然后写入自己的relaylog,会有一个sql线程解析成sql去执行,先写到relaylog再去解析是利用了生产者消费者模型,达到一个异步的作用。

3f1f194db907

国际惯例,授之以鱼不如授之以渔,开始之前先告诉大家官方文档怎么去查

地址:https://dev.mysql.com/doc/refman/8.0/en/grant.html#grant-privileges

3f1f194db907

首先我们准备两个装有mysql8的虚拟机,可以安装好一个然后克隆。

我的是192.168.1.8和192.168.1.9

1.8做主服务器,1.9做从

3f1f194db907

我们先来做主服务器的工作

配置文件配置如下:

3f1f194db907

可以对这三个参数做一个解释,看官方文档:

大致意思就是必须在源和副本上设置这个唯一的server-id,范围是 2的32次方 − 1.

3f1f194db907

log_bin 是binlog日志文件名

log_bin_index就是索引文件

配置好以后重启mysql服务

接下来我们创建一个用户专门用来做读取主服务器二进制文件

mysql -u root -p

create user replication_user IDENTIFIED BY 'Replication@163.com';

grant REPLICATION SLAVE on *.* to 'replication_user'@'%';

alter user 'replication_user'@'%' IDENTIFIED WITH mysql_native_password BY 'Replication@163.com';

flush privileges;

3f1f194db907

查看一下主服务器状态和二进制文件

3f1f194db907

接下来是从服务器

打开从服务器relay日志

3f1f194db907

重启MySQL

systemctl restart mysqld

然后通过命令设置主服务的信息:

分别就是主服务的地址,二进制文件名,用户和密码,都是上面设置好的

change master to

master_host='192.168.1.8',

master_port=3306,

master_user='replication_user',

master_password='Replication@163.com',

master_log_file='master_bin.000002',

master_log_pos=0;

start slave;

3f1f194db907

查看状态,我这里分别有两个错误

show slave status \G;

第一次是密码加密方式的问题,按上面创建用户的方式做,不会有这个问题

3f1f194db907

图片.png

第二次是server—uuid和主服务器重复,因为我的从是克隆过来的,所以重复了,

3f1f194db907

图片.png

需要修改数据目录下的auto.cnf,你的数据目录看配置文件在哪里,我的是

3f1f194db907

在这个目录下找到auto.cnf

3f1f194db907

然后我们在查看从的状态:

先stop slave;

再start slave;

看到Waiting for master to send event说明没问题了,再等待主服务的事件

3f1f194db907

接下来就是测试啦

我们在主服务上创建一个库,创建一个表,看是否能够同步过来

好的,没有问题,大功告成

3f1f194db907

下一篇文章我会介绍如何通过Spring实现数据源切换,从而实现读写分离!欢迎再来!

转载地址:https://blog.csdn.net/weixin_30909915/article/details/113331222 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:antd实现点击按钮隐藏输入框_如何实现按钮点击显示,点击自身再隐藏?
下一篇:java mysql 表关系分析_数据库表的关系

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月29日 07时06分36秒