SpringFramework

金三银四攻坚系列讲解之MySQL的 主从复制

2020-12-21  本文已影响0人  猿生进阶

前言:

mysql 的主从复制实现的原理就是 binlog 日志,那么我们主节点负责数据库写操作,而从节点负责读操作,这样在从节点上不需要使用事务,能够大大提高数据库的性能。那么这个时候面临的问题就是从节点如何来同步主节点数据的问题,就用到了我们之前说过的 binlog 日志。从节点通过 binlog 日志来与主节点进行数据同步。

三台节点,一个 master,两个 slave,规划如下:

<u style="margin: 0px; padding: 0px; border: 0px;">master 192.168.153.201</u>

<u style="margin: 0px; padding: 0px; border: 0px;">slave1 192.168.153.152</u>

<u style="margin: 0px; padding: 0px; border: 0px;">slave2 192.168.153.153</u>

三台节点都是使用 CentOS6.9 操作系统,数据库使用的是 mysql5.7。

配置 master

1.创建用户并授权

比如我们的用户叫做 repl,创建用户语法如下:

create user ‘repl'

image

2.授权

用户必须具备 replication slave 权限,除此之外不需要其他的权限

grant replication slave on . to 'repl'@'192.168.153.%' identified by 'repl';

image

3.开启 binlog 日志

这里可以参考开启 binlog 日志的文档。

至此,主服务器就配置好了。下面来进行配置从服务器。

slave1

1.修改 my.inf 配置文件

[mysqld]server-id=2relay-log-index=slave-relay-bin.indexrelay-log=slave-relay-bin

2.连接 Master

 change master to master_host='192.168.0.104', //Master 服务器 Ip
 master_port=3306,
 master_user='repl',
 master_password='mysql',
master_log_file='master-bin.000001',
   //Master 服务器产生的日志 master_log_pos=0;
change master to
master_host='192.168.153.201',
  master_port=3306,master_user='repl',
  master_passwo rd='repl',
    master_log_file='/var/lib/mysql/mysql-bin.000001',
    master_log_pos=0;

3.查看状态

show slaves status\G

image

这里关注两个地方,第一个是 Slave_IO_Running,第二个是 Slave_SQL_Running。这两个必须都为 yes 才可以启动从节点。那么问题出现在哪里呢,后面会有日志提示

image

这里是说两台节点的 uuid 一致,要让这两台机器的 uuid 不一致才行,那么 uuid 在哪呢,在我们数据目录下 auto.cnf 文件中,只要修改这个文件就可以了。

image

再来查看状态,然后就为 yes 了。

4.启动

start slave

5.关闭

stop slave

6.重置

reset slave

祝各位有心人取得自己想要的成果。

上一篇 下一篇

猜你喜欢

热点阅读