下面以 CentOS 7/8 + MySQL 5.7/8.0 为例,说明 MySQL 主从复制(Master-Slave) 的基本配置步骤。
假设:
编辑 /etc/my.cnf 或 /etc/mysql/my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=row
说明:
server-id必须唯一log-bin开启二进制日志(主从必需)
重启 MySQL:
systemctl restart mysqld
登录 MySQL:
mysql -u root -p
执行:
CREATE USER 'repl'@'192.168.1.11' IDENTIFIED BY 'Repl@123';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.11';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
记录:
mysql-bin.000001)154)[mysqld]
server-id=2
relay-log=relay-bin
重启 MySQL:
systemctl restart mysqld
登录从库 MySQL:
CHANGE MASTER TO
MASTER_HOST='192.168.1.10',
MASTER_USER='repl',
MASTER_PASSWORD='Repl@123',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G
重点检查:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都为 Yes 表示主从同步正常。
在主库创建数据库:
CREATE DATABASE test_db;
在从库查看:
SHOW DATABASES;
能看到 test_db 即成功。
mysqldump -u root -p --all-databases > all.sql
如报错,可改用:
CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
如果你需要:
可以直接告诉我你的使用场景。