centos8 mysql8主从配置
主机ip:192.168.1.1
从机ip:192.168.1.2
1、主节(Master)点配置
修改 Master 的配置文件/etc/my.cnf
vi /etc/my.cnf
在my.cnf文件中加入如下配置内容
[mysqld]
log-bin=mysql-bin
server-id=1
2、从节点(Slave)配置
修改 Slave 的配置文件/etc/my.cnf
vi /etc/my.cnf
在my.cnf文件中加入如下配置内容
[mysqld]
server-id=2
3、创建用于复制操作的用户
在主节点创建一个用户repl,用于从节点链接主节点时使用。(ip填从节点的ip)
mysql> use mysql;
mysql> CREATE USER 'repl'@'192.168.1.2' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.2';
刷新授权表信息
mysql> flush privileges;
4、获取主节点当前binary log文件名和位置(position)
生产中初次设置主从同步这个position值必须是不能随时变的
mysql> FLUSH TABLE WITH READ LOCK;
锁库position就停了
mysql> SHOW MASTER STATUS;
5、在从(Slave)节点上设置主节点参数
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='binlog.000006',
MASTER_LOG_POS=856;
6、在从节点查看主从同步状态
mysql> show slave status\G;
刚配置完是这样的,两个no
7、在从节点开启主从同步
mysql> start slave;
8、从节点再查看主从同步状态
mysql> show slave status\G;
如果是这种情况,一个no另一个yes,需要继续以下操作,直至两个都变成yes
查看从节点的server_id
mysql> show variables like 'server_id';
如果不等于上面的2,需要进行以下操作
mysql> set global server_id=2; #此处的数值和my.cnf里设置的一样就行
mysql> show variables like 'server_id';
mysql> stop slave;
mysql> start slave;
mysql> show slave status\G;
这两个变成yes就成功了
9、主节点解锁
等你设置好slave 后,在主机打开全局锁
mysql> unlock tables;
position恢复。设置主从成功。