转自 MySQL8.0主从部署配置详细步骤_mysql8主从配置_蜗牛大白牙的博客-CSDN博客

1、在两台服务器上安装mysql

ip 角色
192.168.10.129
192.168.10.130

2、主服务器修改my.cnf文件

vi /etc/my.cnf
#服务器 id,随意,但要唯一
server-id=1
#二进制文件存放路径
log-bin=mysql-bin
#参数用于排除自带的数据库。
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format=ROW

3、重启主服务器mysql

service mysql restart

4、主服务器的数据库中创建用于复制的账户并授予相应的权限

#登录mysql
mysql -uroot -p

use mysql;
#创建用户
CREATE USER 'db_sync'@'%' IDENTIFIED BY 'Csdn@123';
#授权账号复制权限
GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%';
#刷新配置
FLUSH PRIVILEGES;

5、在主服务器上执行以下命令获取当前二进制日志文件的名称和位置

SHOW MASTER STATUS;
记录File 和 Position 值,后续在从服务器上使用

6、从服务器修改my.cnf文件

server-id=2
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log=mysql-relay-bin
#从服务器的二进制日志文件的名称。
log_bin=mysql-bin
#不同步相关的库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

7、重启从服务器mysql

8、登录从服务器mysql,根据主服务器信息执行以下命令

#登录mysql
mysql -uroot -p

use mysql;

CHANGE MASTER TO
MASTER_HOST = '192.168.10.129', #主服务器ip
MASTER_USER = 'db_sync', #主服务器创建的复制账户
MASTER_PASSWORD = 'Csdn@123', #复制账户的密码
#主服务器数据库上的file值(不能有空格)
MASTER_LOG_FILE = 'mysql-bin.000001',
#主服务器数据库的Position值
MASTER_LOG_POS = 156,
get_master_public_key=1; #主服务器server-id

#开启同步
start slave;

#查看同步状态
SHOW SLAVE STATUS\G;

Slave_IO_Running 和 Slave_SQL_Running 都为Yes,即配置成功