MySQL 8 主从复制的具体实现步骤如下
-
配置主服务器:
- 编辑主服务器的 MySQL 配置文件(通常是
my.cnf
文件),确保以下参数正确配置:server_id = 1 # 主服务器的唯一标识符,每台服务器要唯一
log_bin = mysql-bin # 启用二进制日志,设置日志文件名
binlog_format = ROW # 选择 ROW 模式,更高效的复制创建日志目录:mkdir -p mysql-bin
chown -R mysql:mysql mysql-bin
chmod -R 755 mysql-bin
- 重启 MySQL 服务器使配置生效。
systemctl restart mysqld
- 编辑主服务器的 MySQL 配置文件(通常是
-
创建复制账户:
- 在主服务器上创建一个用于复制的账户,并授予复制权限。示例 SQL 语句如下:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
- 记录复制账户的用户名和密码,后续从服务器需要使用。
- 在主服务器上创建一个用于复制的账户,并授予复制权限。示例 SQL 语句如下:
-
备份数据:
- 在主服务器上执行数据库备份,可以使用
mysqldump
工具。mysqldump -u username -p database_name > backup.sql
- 在主服务器上执行数据库备份,可以使用
-
配置从服务器:
- 编辑从服务器的 MySQL 配置文件,同样是
my.cnf
文件,设置以下参数:relay-log = /var/log/mysql/relay-bin
server_id = 2 # 从服务器的唯一标识符,每台服务器要唯一
创建日志目录:mkdir -p /var/log/mysql/
chown -R mysql:mysql /var/log/mysql/
chmod -R 755 /var/log/mysql/
重启服务器 systemctl restart mysqld
- 导入主服务器的数据库备份到从服务器中。
mysql -u username -p database_name < backup.sql
- 编辑从服务器的 MySQL 配置文件,同样是
-
连接主从服务器:
- 在从服务器上启动 MySQL 并连接到 MySQL 控制台。
- 执行以下 SQL 命令,连接到主服务器并开始复制:
CHANGE MASTER TO MASTER_HOST='master_ip',
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001', -- 主服务器的二进制日志文件名
MASTER_LOG_POS=1234; -- 主服务器的二进制日志位置
master_ip
是主服务器的 IP 地址,mysql-bin.000001
是主服务器的二进制日志文件名,1234
是主服务器的二进制日志位置。
-
启动复制:
- 在从服务器上执行
START SLAVE;
命令,启动从服务器的复制进程。
- 在从服务器上执行
-
检查复制状态:
- 在从服务器上执行
SHOW SLAVE STATUS\G;
命令,查看复制状态,确保Slave_IO_Running
和Slave_SQL_Running
都为Yes
,表示复制正常运行。 -
- 在从服务器上执行
完成以上步骤后,MySQL 8 的主从复制就可以正常工作了。需要注意的是,确保主从服务器的配置信息正确,网络连接畅通,以及定期监控复制状态,确保复制过程稳定可靠