答案:mysql主从同步通过配置主库开启二进制日志和创建复制用户,从库设置server-id并执行CHANGE MASTER连接主库,启动复制后检查Slave_IO_Running和Slave_SQL_Running状态为Yes即可正常运行。

MySQL同步复制能将一个数据库服务器(主库)的数据自动复制到另一个数据库服务器(从库),常用于数据备份、读写分离和高可用架构。配置过程需要主从两台MySQL服务器,以下是具体操作步骤。
1. 配置主库(Master)
要启用主从复制,首先在主库的配置文件中开启二进制日志并设置唯一的server-id。
- 编辑MySQL配置文件(通常为
/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
- 重启MySQL服务使配置生效:
systemctl restart mysql
CRMEB 是基于Thinkphp5基础开发的以会员为中心的电商系统,开源版微信公众号商城和小程序商城数据同步,带积分、优惠券、秒杀、砍价、分销等功能,更是一套方便二次开发的商城框架(后台封装了独有快速创建表单功能,无需写表单页面、快速创建数据搜索和数据列表页、导出表格、系统权限配置控制每一个控制器方法、系统参数配置、数据字典、组合数据等)
0
- 登录MySQL,创建用于复制的专用账户:
CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘your_password‘;
GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’;
FLUSH PRIVILEGES;
- 查看主库当前二进制日志状态,记录File和position值:
SHOW MASTER STATUS;
2. 配置从库(Slave)
从库也需要设置唯一的server-id,并指定连接主库的信息。
- 编辑从库的MySQL配置文件:
[mysqld]
server-id = 2
- 重启从库MySQL服务:
systemctl restart mysql
- 进入MySQL,执行CHANGE MASTER命令,填入主库信息:
CHANGE MASTER TO
MASTER_HOST=’主库IP地址’,
MASTER_USER=’repl’,
MASTER_PASSword=’your_password’,
MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS= 154;
- 启动复制进程:
START SLAVE;
3. 检查复制状态
配置完成后,需确认复制是否正常运行。
- 在从库执行以下命令查看状态:
SHOW SLAVE STATUSG
- 重点关注两个字段:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- 若均为Yes,表示复制正常;如果有错误,检查网络、权限、防火墙或日志文件路径。
4. 注意事项与常见问题
确保整个过程稳定可靠,需要注意以下几点:
- 主从服务器时间应尽量同步,建议使用NTP服务。
- server-id在整个复制集群中必须唯一。
- 如果主库已有数据,建议先通过mysqldump导出数据并导入从库,再开始复制。
- 防火墙需开放主库的3306端口,允许从库访问。
- 定期检查
Seconds_Behind_Master判断延迟情况。
基本上就这些。只要配置正确,MySQL主从同步可以稳定运行,为应用提供更可靠的数据支持。