豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: MySQL主从同步配置

🤖 Ai回答:
以下是 MySQL 主从同步(Replication)的配置步骤,详细说明了每一步的操作和注意事项:

1、主库(Master)配置
步骤 1.1:编辑主库配置文件
bash
sudo vim /etc/my.cnf

在 `[mysqld]` 部分添加以下配置:
ini
server-id = 1 唯一标识,主库设为1
log-bin = mysql-bin 启用二进制日志,文件名前缀为mysql-bin
binlog-do-db = your_db 需要同步的数据库(可选,若同步所有数据库可省略)
或者排除某些数据库:
binlog-ignore-db = test

可选配置:
`binlog_format = ROW`:推荐使用 `ROW` 格式,避免部分场景的复制问题。
`relay-log = mysql-relay-bin`:从库需要此配置(但主库通常不需要)。

步骤 1.2:重启 MySQL 服务
bash
sudo systemctl restart mysql

步骤 1.3:创建复制用户
登录 MySQL:
bash
mysql -u root -p

执行以下命令创建复制用户(替换 `repl_user` 和 `password`):
sql
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;

步骤 1.4:锁定主库表(可选但推荐)
sql
FLUSH TABLES WITH READ LOCK; 锁定所有表,防止写入

步骤 1.5:备份主库数据
通过 `mysqldump` 备份数据(或直接复制数据文件):
bash
mysqldump -u root -p single-transaction lock-tables=false master-data=2 all-databases master_backup.sql

`single-transaction`:保证一致性。
`master-data=2`:自动记录当前的 binlog 文件名和位置。

步骤 1.6:记录当前 binlog 位置
sql
SHOW MASTER STATUS\G

输出示例:

* 1、row *
File: mysql-bin.000001
Position: 1234
Binlog_Do_DB: your_db
Binlog_Ignore_DB:

记录 `File` 和 `Position` 的值,后续从库需要这些信息。

步骤 1.7:解锁主库表
sql
UNLOCK TABLES;

2、从库(Slave)配置
步骤 2.1:编辑从库配置文件
bash
sudo vim /etc/my.cnf

在 `[mysqld]` 部分添加以下配置:
ini
server-id = 2 必须唯一,不能与主库重复
relay-log = mysql-relay-bin 中继日志文件名前缀
log_slave_updates 允许从库作为其他从库的主库(可选)

步骤 2.2:重启 MySQL 服务
bash
sudo systemctl restart mysql

步骤 2.3:导入主库备份数据
bash
mysql -u root -p < master_backup.sql

步骤 2.4:配置从库连接主库
登录 MySQL:
bash
mysql -u root -p

执行以下命令(替换参数):
sql
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_PORT=3306,
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001', 主库的 File 值
MASTER_LOG_POS=1234; 主库的 Position 值

步骤 2.5:启动从库复制
sql
START SLAVE;

3、验证主从同步
步骤 3.1:检查从库状态
sql
SHOW SLAVE STATUS\G

关键字段:
`Slave_IO_Running: Yes`:IO 线程正常(连接主库拉取日志)。
`Slave_SQL_Running: Yes`:SQL 线程正常(执行主库的 SQL 操作)。
`Last_IO_Errno` 和 `Last_SQL_Errno`:检查是否有错误。

步骤 3.2:测试数据同步
在主库插入一条测试数据:
sql
INSERT INTO your_db.test_table (name) VALUES ('test');

检查从库是否同步了这条数据。

4、常见问题排查
4.1 连接问题
错误:`Could not connect to master`
原因:防火墙阻止 3306 端口,或主库未授权用户。
解决:
bash
开放从库到主库的 3306 端口
sudo ufw allow from 从库IP to any port 3306


4.2 权限问题
错误:`Access denied for user 'repl_user'@'从库IP'`
解决:确保主库用户权限正确:
sql
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;


4.3 复制延迟
现象:`Seconds_Behind_Master` 显示延迟。
解决:优化从库性能,检查磁盘 I/O 或 SQL 执行效率。

5、高级配置(可选)
5.1 半同步复制
提高数据一致性:
bash
主库和从库安装插件
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

主库配置
SET GLOBAL rpl_semi_sync_master_enabled = 1;

从库配置
SET GLOBAL rpl_semi_sync_slave_enabled = 1;

5.2 多主复制
需结合 `GTID`(全局事务标识符)配置,避免冲突。

5.3 安全配置
使用 SSL 加密主从通信:
sql
CHANGE MASTER TO MASTER_SSL=1, MASTER_SSL_CA='ca.pem', ...;


6、注意事项
1、server-id 必须唯一:主从的 `server-id` 不能重复。
2、主从版本兼容性:从库版本不能低于主库。
3、数据一致性:初始备份时确保主库无写入(通过锁表或事务一致性)。
4、监控工具:使用 `pt-heartbeat` 或 MySQL 8.0 的 `performance_schema` 监控延迟。

通过以上步骤,您可以完成 MySQL 主从同步的配置。如果遇到问题,检查 `SHOW SLAVE STATUS` 的错误信息,并针对性解决。

Ai作答

📣 商家广告


日付VPS

广告招商

广告招商

取名

域名抢注


0

IP地址: 86.231.132.222

搜索次数: 0

提问时间: 2025-11-11 06:13:53

🛒 域名购买
pbbb.com.cn
6444.com.cn
285.net.cn
76.plus
3330.com.cn
671.net.cn
souhuai.com
53.biz
926.net.cn
23.cx

❓️ 热门提问
10核服务器
ip漂移是什么意思
大流量vps
如家托管
MySQL源码information_schema
PHP源码password_hash
nginx服务
爬虫源码mysql存储
蜘蛛池接口云服务器
香港地铁一站路多少钱
豌豆Ai站群搜索引擎系统

🌐 域名评估
asup.cn
10.cn
evtol.sd.cn
rbjm.cn
zz.nm.cn
y-w.com.cn
odim.cn
53.chat
fdxp.cn
su8.gs.cn

⛏ 最新挖掘
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜

🖌 热门作画

🤝 关于我们:
豌豆Ai 域名 建站 站群 留痕 推广 评估 源码
开发Ai 工具 日记 价格 加盟 广告 流量 留言 联系

🗨 加入群聊
群

🔗 友情链接
网站搜索  Sökmotor for barn  ai提问

🧰 站长工具
Ai工具  whois查询  搜索

📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。

上一篇 87185 87186 87187 下一篇