云服务器MySQL主从同步配置清单指南
文章分类:技术文档 /
创建时间:2025-08-05
在云服务器上搭建MySQL主从同步,就像给数据库配上“信息同步员”——主库负责接收新数据,从库实时复制,既能提升系统可用性,又能为数据安全加把锁。这份配置清单从准备到验证全程拆解,帮你轻松搞定。
准备工作:搭好基础框架
首先需要两台云服务器实例,分别作为主库和从库。记得在上面装好MySQL数据库,主从版本尽量一致(比如都用5.7或8.0),避免兼容性“掉链子”。云服务器的内网通信通常低延迟高稳定,但仍要确认主从实例间网络连通——可以用ping命令测试,或者检查安全组是否开放了MySQL默认的3306端口。最后得给从库创建一个“同步专用账户”,就像发张“通行证”,这个账户需要有REPLICATION SLAVE权限,后续从库会用它连接主库读取数据。
主库配置:定规则+留记录
登录主库的MySQL,关键是做两件事:给主库“打唯一标记”,以及开启“操作记录账本”。
编辑配置文件:设ID+开日志
找到MySQL配置文件(通常在/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf),添加两行关键配置:
server-id = 1 # 主库的唯一标识,从库要设不同值(比如2)
log-bin = mysql-bin # 开启二进制日志(Binlog),记录所有写操作
保存后重启MySQL服务(systemctl restart mysql),让配置生效。这里的二进制日志是核心——主库的每一次数据变更都会被记在这里,从库靠它同步数据。
创建同步账户:发“通行证”
在MySQL命令行执行:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'YourPassword123'; # 创建远程访问用户
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%'; # 授予复制权限
FLUSH PRIVILEGES; # 刷新权限生效
这里的密码建议设复杂点(字母+数字+符号),避免被破解。
记录关键信息:日志位置
执行SHOW MASTER STATUS;命令,会看到类似结果:
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 154 | | |
+------------------+----------+--------------+------------------+
记住File(当前日志文件名)和Position(日志偏移量),从库连接时要用。
从库配置:连主库+开同步
登录从库的MySQL,同样先改配置文件,再连接主库,最后启动同步。
编辑配置文件:设唯一ID
在从库的配置文件里设置:
server-id = 2 # 必须和主库不同!
重启MySQL服务让ID生效。
连接主库:填“接头信息”
执行CHANGE MASTER TO命令,告诉从库主库的位置和同步起点:
CHANGE MASTER TO
MASTER_HOST='主库公网IP', # 主库的IP地址
MASTER_USER='repl_user', # 前面创建的同步账户
MASTER_PASSWORD='YourPassword123', # 账户密码
MASTER_LOG_FILE='mysql-bin.000001', # 主库的File值
MASTER_LOG_POS=154; # 主库的Position值
这里的信息必须和主库SHOW MASTER STATUS的结果完全一致,否则同步会失败。
启动同步:检查状态
执行START SLAVE;启动同步进程,然后用SHOW SLAVE STATUS\G查看状态。重点看两个参数:
- Slave_IO_Running:显示Yes表示IO线程正常(从库在主库读取日志)
- Slave_SQL_Running:显示Yes表示SQL线程正常(从库在执行日志里的操作)
两个都为Yes,说明同步机制跑起来了。
验证效果:测同步是否“跟得上”
在主库执行:
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(20));
INSERT INTO user VALUES (1, '张三');
过10秒左右,到从库执行SELECT * FROM test_db.user;,如果能看到“1 张三”,说明同步成功。如果没看到,检查主从网络、账户权限或日志位置是否填错。
完成这些步骤,你的云服务器MySQL主从同步就配置好了。这套架构能在主库故障时快速切换从库,也能分担读压力(比如把查询请求分到从库)。云服务器的NVMe硬盘能加速Binlog写入,大带宽让日志传输更流畅,高防机制还能过滤异常流量,为同步过程加层“保护罩”,业务跑起来更稳当。
下一篇: 云服务器MSSQL部署常见问题及解决方案