当前位置: 首页 > 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.在新的主服务器上执行数据库导入操作,此时从数据库就正常同步了,可以做到主从一致

http://www.dtcms.com/a/188526.html

相关文章:

  • 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
  • 佰力博科技与您探讨表面电阻的测试方法及应用领域
  • 中国品牌日 | 以科技创新为引领,激光院“风采”品牌建设结硕果
  • 微服务,服务粒度多少合适
  • 最优化方法Python计算:有约束优化应用——线性可分问题支持向量机
  • 影刀RPA开发-采集爬取京东读书书籍
  • 【redis】缓存策略
  • [Java实战]Spring Boot 3构建 RESTful 风格服务(二十)
  • Telnet 类图解析
  • 我的五周年创作纪念日
  • 股指期货是什么?有啥特点?怎么用?
  • Linux 内核网络协议栈:从 Socket 类型到协议注册的深度解析
  • 大模型常用位置编码方式