首先配置主库启用binlog并创建复制用户,然后为每个从库设置唯一server-id并配置连接主库的复制参数,最后验证各从库的Slave_IO_Running和Slave_SQL_Running状态为Yes,确认数据同步正常。

在 MySQL 中实现单主多从架构,主要是通过配置主从复制(Replication)来完成。这种架构下,一个主库(Master)负责处理写操作,多个从库(Slave)同步主库的数据并可承担读请求,从而提升系统读性能和高可用性。
1. 确认环境与网络连通性
确保主从服务器之间网络互通,MySQL 版本尽量一致或兼容。通常建议使用 GTID 或基于二进制日志(binlog)的异步复制。
主库和所有从库能相互通过 IP 和端口通信(默认 3306)关闭防火墙或开放 3306 端口各节点时间同步(使用 NTP)
2. 配置主库(Master)
编辑主库的 my.cnf(或 my.ini)配置文件,启用 binlog 并设置唯一 server-id。
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
expire-logs-days = 7
max-binlog-size = 100M
重启 MySQL 服务后,登录主库创建用于复制的账号:
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl_password';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;
查看主库状态,记录 File 和 Position 值:
SHOW MASTER STATUS;
3. 配置各个从库(Slave)
每个从库也需要唯一的 server-id,并可选择是否开启 relay log。
[mysqld]
server-id = 2 # 每个从库 id 不同,如 3、4…
relay-log = mysql-relay-bin
read-only = 1
重启从库 MySQL 服务,然后连接到主库进行复制配置:
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='mysql-bin.000001', -- 来自 SHOW MASTER STATUS MASTER_LOG_POS=154; -- 来自 SHOW MASTER STATUSSTART SLAVE;
重复此步骤为每个从库配置,注意修改 server-id 和 IP 地址。
4. 验证复制状态
在每个从库上执行:
SHOW SLAVE STATUSG
检查以下两个关键字段:
Slave_IO_Running: YesSlave_SQL_Running: Yes
若均为 Yes,说明复制正常。如果有错误,查看 Last_Error 信息进行排查。
可通过在主库创建数据库或表,验证是否同步到各从库。
基本上就这些。单主多从架构搭建完成后,可结合中间件(如 MyCat、ProxySQL)实现读写分离,进一步发挥从库作用。
以上就是如何在mysql中设置单主多从架构的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/201747.html
微信扫一扫
支付宝扫一扫