首先我们将要有两台服务器,如果没有的话,自己配置虚拟机也是可行的,这里我是自己配置了两台centos的服务器。主服务器ip为192.168.3.130,从服务器ip为192.168.3.129。

1.配置主服务器的配置项

    1)配置项在etc目录下

mysql8.0主从配置 mysql主从配置过程_配置项

2)打开配置项,添加其中的几个配置

mysql8.0主从配置 mysql主从配置过程_mysql_02

现在我来解释一下这3个配置项的意思 。

server-id是为当前数据库设置一个id,这个id都是自己取得,只要不相同就行。

lon-bin是binlog日志,binlog日志作用是用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录(对数据库的改动),binlog日志的文件名就是mysql-bin.xxxxxx了

binlog-format指的是以什么样的形式来记录下数据库的改动,

    a.row指的是每条sql语句都会记录到binlog日志中

    b.statement指的是不会将每条sql语句记录下来,但是他会记录那些数据被修改了

    c.mixed是二者兼而有之。

配置项:

#给服务器设置一个id
server-id=130
#服务器二进制文件名称mysql-bin.xxxx
log-bin=mysql-bin
#二进制文件的格式row/statement/mixed
binlog-format=mixed

2.从服务器的配置

从服务器的配置基本上和只服务器一样但是多加了一项。

mysql8.0主从配置 mysql主从配置过程_mysql8.0主从配置_03

多加的配置项其实也很好理解。就是读取主服务器上的binlog日志,来完成主从服务器上的数据一致。

配置项:#给服务器设置一个id
server-id=129
#relaylog从主服务器中的binlog读取数据,以此来完成主从服务器的数据一致
relay-log=mysql-relay
#服务器二进制文件名称mysql-bin.xxxx
log-bin=mysql-bin
#二进制文件的格式row/statement/mixed

binlog-format=mixed

3.从服务器如何读取主服务器的binlog

1).既然到了这一步,那么问题来了,从服务器是如何去读取主服务器上的binlog呢。其实很简单,给从服务器一个账号不就ok了嘛。最简单的就是grant all privileges on *.* to user@'192.168.3.129' identified by '123456';

这个是最简单的,但是权限给高了后会有很多问题,不太安全。

mysql8.0主从配置 mysql主从配置过程_mysql_04


mysql8.0主从配置 mysql主从配置过程_mysql_05


mysql8.0主从配置 mysql主从配置过程_mysql8.0主从配置_06


3)现在检查从服务器的状态和开启从服务器的slave

mysql8.0主从配置 mysql主从配置过程_mysql8.0主从配置_07



mysql8.0主从配置 mysql主从配置过程_mysql_08



到这里配置项工作就完成了,大家就可以开始测试了,在主服务器上创建数据库、增加数据,看看从服务器上是否和主服务器上一致。