实现 MySQL 主从 指定同步日志
概述
在 MySQL 中,主从复制是一种常用的数据同步机制,可以通过将主数据库的更改同步到从数据库,实现数据的备份、读写分离等功能。在实际应用中,可以通过指定同步日志来控制主从之间的数据同步。
本文将介绍如何实现 MySQL 主从指定同步日志的步骤和代码示例。
流程图
pie
title 主从同步日志流程图
"配置主数据库" : 30
"配置从数据库" : 20
"启动主数据库" : 15
"启动从数据库" : 15
"配置主从同步" : 20
步骤说明
配置主数据库
-
在主数据库上修改
my.cnf
配置文件,开启二进制日志功能。# 打开配置文件 vi /etc/my.cnf # 修改配置 [mysqld] log-bin=mysql-bin server-id=1
log-bin=mysql-bin
:开启二进制日志,并指定日志文件的前缀为mysql-bin
。server-id=1
:设置主数据库的唯一标识。
-
重启主数据库使配置生效。
# 重启 MySQL 服务 systemctl restart mysqld
配置从数据库
-
在从数据库上修改
my.cnf
配置文件,开启二进制日志功能。# 打开配置文件 vi /etc/my.cnf # 修改配置 [mysqld] log-bin=mysql-bin server-id=2
log-bin=mysql-bin
:开启二进制日志,并指定日志文件的前缀为mysql-bin
。server-id=2
:设置从数据库的唯一标识。
-
重启从数据库使配置生效。
# 重启 MySQL 服务 systemctl restart mysqld
启动主数据库
-
进入 MySQL 控制台,创建用于同步的账户,并授权。
# 进入 MySQL 控制台 mysql -u root -p # 创建账户 CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; # 授权账户 GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
-
查看主数据库当前的二进制日志文件名称和位置。
SHOW MASTER STATUS;
记录下
File
和Position
的值,后续配置从数据库时会使用到。
启动从数据库
-
进入 MySQL 控制台,配置从数据库同步主数据库的信息。
# 进入 MySQL 控制台 mysql -u root -p # 配置主数据库信息 CHANGE MASTER TO MASTER_HOST='主数据库IP地址', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='上一步记录的File值', MASTER_LOG_POS=上一步记录的Position值;
MASTER_HOST
:主数据库的 IP 地址。MASTER_USER
:用于同步的账户名称。MASTER_PASSWORD
:用于同步的账户密码。MASTER_LOG_FILE
:主数据库当前的二进制日志文件名称。MASTER_LOG_POS
:主数据库当前的二进制日志位置。
-
启动从数据库的同步进程。
START SLAVE;
-
查看从数据库的同步状态。
SHOW SLAVE STATUS\G
检查
Slave_IO_Running
和Slave_SQL_Running
是否为Yes
,表示从数据库已成功连接到主数据库并开始同步数据。
总结
通过以上步骤,我们可以实现 MySQL 主从指定同步日志的配置和启动。主从同步能够保证数据的一致性和可用性,提高数据库的可靠性和性能。在实际应用中,可以根据需求来选择合适的同步策略和配置参数,来满足业务的需求。