说明
mysql版本:5.7.27
主从关系:128(主)、130(从)
主从复制适用场景
场景一:从服务器作为主服务器的实时数据备份。
场景二:主从服务器读写分离,实现负载均衡。(主服务器负责增删改,从服务器负责查)
场景三:业务拆分访问。(一个服务器公司内部人用,一个服务器供外部用户适用。)
配置主从同步
1.登录mysql,在主从服务器中分别新建一个mysql数据库,然后show一下看看
create database monkeyhouse
show databases

2.修改主服务器的my.cnf配置文件
<1>首先退出主服务器的mysql编辑模式

<2>进入数据库下的配置文件
vim /etc/my.cnf
写入如下代码,然后保存退出
log-bin=master-a-bin #日志文件名字
binlog-format=Row #二进制日志的格式,有row,statement和mixed三种类型
server_id = 1 #要求各个服务器id必须不能一样
binlog-do-db=monkeyhouse #同步的数据库名字
3.配置从服务器登录主服务器的账号授权
登录主服务器的mysql,输入如下代码授权。
其中,root和ip都是主服务器的。
grant replication slave on *.* to 'root'@'192.168.62.128' identified by 'root';
授权时报这个错意思是密码强度太低。

请参考这篇博客解决。
https://blog.youkuaiyun.com/Delicious_Life/article/details/100046419
然后再授权一下会提示授权成功。

授权成功后刷新下
flush privileges;
4.从服务器的配置(my.cnf)
还是在vim /etc/my.cnf下面编辑
log-bin=master-a-bin #主服务器日志文件名字
binlog-format=Row #二进制日志的格式,有row,statement和mixed三种类型
server_id = 2 #要求各个服务器id必须不能一样
#log-slave-updates=true #中继日志执行之后,这些变化是否需要计入自己的binarylog。当你的从服务器需要作为另外一个服务器的主服务器时需要打开,也就是双主互相备份,或者多主循环备份
5.重启下主服务器,查看服务器信息
先重启
systemctl restart mysqld.service
再登录
mysql -u root -p
然后查看状态
show master status;
下面这样代表ok

6.重启并配置从服务器
重启之后进入mysql输入下面语句,host是主服务器的地址,最后面的file和pos配置就是上一张图的配置。别写错了。
change master to master_host='192.168.62.128',master_user='root',master_password='root',master_port=3306,master_log_file='master-a-bin.000001',master_log_pos=154;
执行成功效果如下

然后输入下面代码开启从服务器
start slave;

查看状态
show slave status \G;
连接成功(红框中的东西必须是Yes)

测试
我们再用navicat连接测试下。首先连接主服务器

在monkeyhouse里新建一个数据表,插入写信息。如图user表里有两条数据

我们先来看看主表,是否能查到这些信息。

主表查到了!
我们再来看看从表。我们没有给从表做操作,但是也能查询到主表中的信息。说明主从同步成功~


本文详细介绍MySQL 5.7.27版本下,如何配置主从服务器进行数据同步,包括适用场景、步骤详解及常见错误处理。适用于读写分离、数据备份及业务拆分等需求。
1917

被折叠的 条评论
为什么被折叠?



