场景

CentOS7中安装Mysql8并配置远程连接和修改密码等:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131807269

在上面实现安装Mysql8的基础上,克隆出两台机器,修改ip后进行mysql的主从复制搭建。

Mysql主从复制

在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。

从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。

从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。

 

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

搭建两台Mysql8的服务器,一台是192.168.148.141作为主服务器,一台是192.168.148.142作为从服务器。

主服务器配置

1、修改主服务器中mysql的配置文件

这里mysql的配置文件my.cnf的位置是/etc/my.cnf,具体位置根据自己安装过程而定。

vim /etc/my.cnf

下面是配置文件修改前的内容

 

在[mysqld]

下面添加如下

server-id=141

log-bin=mysql-bin

其中server-id为指定服务器节点id,一般为服务器ip方便区分;

log-bin配置开启日志文件,后面配置为前缀。

配置后的内容为

 

2、主服务器修改以上配置后,需要重启mysql服务

systemctl restart mysqld

重启之后查看mysql服务状态是否正常为active(running)

 

3、使用Navicat等软件连接主服务,然后验证server_id是否配置成功

show variables like '%server_id%';

 

4、查询主服务器同步的文件和行数

show master status;

 

记住这里的File下的mysql-bin.000001以及Position下的157,此时不要再对主服务器有任何操作。

从服务器配置

1、同样修改从服务器的配置文件my.cnf

vim /etc/my.cnf

同理添加server-id的配置以及开启日志的配置

server-id=142

log-bin=mysql-bin

 

2、然后重启从服务器服务

 systemctl restart mysqld

同理进行验证

show variables like ‘%server_id%’;

 

3、从服务器同步主服务配置

使用Navicat等软件连接从服务器并执行以下sql

change master to master_host='192.168.148.141',master_user='root',master_password='Aa_123456',master_log_file='mysql-bin.000001',master_log_pos=157;

 

注意这里的

master_host为主服务器的ip

master_user为连接主服务器的用户名

master_password为连接主服务器的密码

master_log_file为要同步的日志文件file,即对应上面主服务器查看时的File字段

master_log_pos为要同步日志文件的位置,即对应上面主服务器查看时的Position字段

执行成功后开启同步

start slave

然后检查从服务器复制功能状态

show slave status;

 

这里验证结果中要着重验证Slave_IO_Running以及Slave_SQL_Running是否都为Yes

 

 

如果发现Slave_IO_Running:No

这是因为两台服务器均为克隆的虚拟机,其mysql的uuid均一致,所以需要修改其中一台mysql的uuid。

找到从服务器上auto.cnf的位置

find / -iname "auto.cnf"

比如这里查找的位置为/var/lib/mysql/auto.cnf

编辑该文件,将uuid最后的一位修改为6,原来是5

 

然后重启mysql服务。

验证主从复制

在主服务器中新建数据库、新建表,从库中会自动同步,主库中添加表数据,从库表会自动同步

 

posted on 2023-07-19 15:51  霸道流氓  阅读(79)  评论(0编辑  收藏  举报