当前位置: 首页 > news >正文

centos7.x下,使用宝塔进行主从复制的原理和实践

操作原理:

一、主库配置
1.修改 MySQL 配置文件
# 编辑主库配置文件(路径根据实际系统可能不同)
vim /etc/my.cnf
 
# 添加以下配置
[mysqld]
server-id = 1                 # 唯一 ID,主库设置为 1
log-bin = mysql-bin           # 启用二进制日志
binlog_format = ROW           # 推荐使用 ROW 模式
expire_logs_days = 7          # 日志保留天数
max_binlog_size = 100M        # 单个日志文件大小
skip_name_resolve = ON        # 跳过域名解析(可选)

重启 MySQL 服务
systemctl restart mysqld

2.登录到主服务器:
mysql -u root -p

3.创建复制用户
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;

4.查看主服务器的状态
SHOW MASTER STATUS;

二、从库配置
1.修改 MySQL 配置文件
# 编辑从库配置文件
vim /etc/my.cnf
 
# 添加以下配置
[mysqld]
server-id = 2                 # 唯一 ID,不能与主库相同
relay-log = mysql-relay-bin   # 启用中继日志
read_only = ON                # 从库只读(可选,确保数据安全)

重启 MySQL 服务
systemctl restart mysqld

2.登录到主服务器:
mysql -u root -p

3.配置从服务器
CHANGE MASTER TO
  MASTER_HOST='主服务器IP',
  MASTER_USER='replicator',
  MASTER_PASSWORD='password',
  MASTER_LOG_FILE='记录的File值',
  MASTER_LOG_POS=记录的Position值;
  
4.启动复制
START SLAVE;

5.检查从服务器的状态
SHOW SLAVE STATUS\G
查看 Slave_IO_Running 和 Slave_SQL_Running 是否都为 Yes,这表示复制正在正常运行。
关键字段检查:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0(表示无延迟)
若出现错误,检查 Last_IO_Error 或 Last_SQL_Error。

三、如何遇到错误后,排查解决后,重新执行
STOP SLAVE;
RESET SLAVE ALL;
-- 重新执行
CHANGE MASTER TO ……
START SLAVE;
SHOW SLAVE STATUS;

四、同步主库现有数据(可选)

1.主库导出数据
# 使用 mysqldump 导出数据(自动记录 binlog 位置)
mysqldump -uroot -p --all-databases --master-data=1 > /tmp/master_dump.sql(或使用宝塔备份功能)
2.将备份文件导入从库
# 复制文件到从库
scp /tmp/master_dump.sql root@slave_ip:/tmp/
# 从库导入数据
mysql -uroot -p < /tmp/master_dump.sql

---------------------------------------------------------------------------------
实战案例

一、主库配置(10.0.12.16)
1.配置防火墙,主库服务器对从库IP开放3306端口
2.宝塔修改配置文件,保存后重启
server-id = 1                 # 唯一 ID,主库设置为 1,默认不需要修改
3.phpMyadmin执行SQL,创建复制用户(10.0.16.16为从库IP)
CREATE USER 'replicator'@'10.0.16.16' IDENTIFIED BY 'abcc1b259f57f8b9111';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'10.0.16.16';
FLUSH PRIVILEGES;
4.记录的File值,记录的Position值
SHOW MASTER STATUS;

二、从库配置(10.0.16.16)
1.宝塔修改配置文件,保存后重启
server-id = 2                 # 唯一 ID,不能与主库相同
relay-log = mysql-relay-bin   # 启用中继日志
2.phpMyadmin执行SQL
CHANGE MASTER TO
  MASTER_HOST='10.0.12.16',
  MASTER_USER='replicator',
  MASTER_PASSWORD='abcc1b259f57f8b9111',
  MASTER_LOG_FILE='mysql-bin.000005',
  MASTER_LOG_POS=3629;
3.启动复制
START SLAVE;
4.查看从服务器的状态
SHOW SLAVE STATUS;

三、同步主库现有数据
1.从有数据的服务器上使用宝塔进行备份
2.上传备份数据到新的主服务器
scp /www/backup/database/mysql/hz_fw_game/hz_fw_game_2025-05-13_20-43-58_mysql_data_vmdYO.sql.zip root@xxx.229.73.57:/root/
3.在新的主服务器上执行数据库导入操作,此时从数据库就正常同步了,可以做到主从一致

相关文章:

  • JavaScript实践(三)JavaScript序列化与反序列化深度解析
  • 使用ADB命令操作Android的apk/aab包
  • PyTorch 分布式训练
  • 2025年渗透测试面试题总结-渗透测试红队面试九(题目+回答)
  • Milvus(21):过滤搜索、范围搜索、分组搜索
  • 【2025最新】Pycharm里如何运行多个py文件
  • Python基础学习-Day23
  • 撤回不了一点 v1.0.2,支持微信QQ钉钉飞书等消息防撤回
  • yolo11n-obb训练rknn模型
  • 博客系统技术需求文档(基于 Flask)
  • ArcGIS、InVEST与RUSLE在水土流失模拟及分析中的实践技术
  • 使用docker安装clickhouse集群
  • K230 ISP:一种新的白平衡标定方法
  • 0.66kV0.69kV接地电阻柜常规配置单
  • Data.olllo:一个可以打开 100GB CSV 文件的桌面工具
  • JavaScript-02
  • 2025.5.13总结
  • PYTHON训练营DAY24
  • 佰力博科技与您探讨表面电阻的测试方法及应用领域
  • 中国品牌日 | 以科技创新为引领,激光院“风采”品牌建设结硕果
  • 美发布“金穹”导弹防御系统发展规划
  • 海南省市监局与香港标准及检定中心签署合作协议,加快检验检测国际化
  • 住建部:推进“好房子、好小区、好社区、好城区”四好建设
  • 多名幼师殴打女童被行拘后续,盘锦市教育局工作人员:该局将专项整治全市幼儿园
  • 世卫大会连续九年拒绝涉台提案
  • 这位中国电影早期的全能奇才,90年前唱响国歌