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

mysql配置主从同步

vim /etc/my.cnf

[mysqld]
server-id = 1 # 主库唯一ID(从库需不同)
log_bin = /var/lib/mysql/mysql-bin # binlog日志路径(自定义,确保磁盘空间充足)
binlog_format = ROW # 推荐ROW格式(避免SQL_MODE不一致、函数依赖等问题,数据一致性最高)
expire_logs_days = 7 # binlog保留7天(根据磁盘空间调整,避免占满)
innodb_flush_log_at_trx_commit = 1 # 事务安全性(可选,牺牲少量性能换一致性)
sync_binlog = 1 # 同步binlog到磁盘(可选,防止宕机丢失binlog)# 3. GTID配置(MySQL 5.7+,推荐开启)
gtid_mode=ON
enforce_gtid_consistency=ON
log_bin_use_v1_row_events=1  # 兼容低版本从库(可选)
CREATE USER 'repl'@'从库IP' IDENTIFIED BY '你的强密码'; 
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库IP';
FLUSH PRIVILEGES; -- 刷新权限
CREATE USER 'repl'@'192.168.159.131' IDENTIFIED BY 'Root123.com@'; 
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.159.131';
FLUSH PRIVILEGES;

– 验证账号(可选,从库执行)
mysql -h 主库IP -u repl -p’你的强密码’ – 能登录则说明权限正常

mysql -h 192.168.159.133   -P 3307 -u repl -p'Root123.com@' --skip-ssl

验证主库配置生效

show variables like 'log_bin';  # 结果为ON
show variables like 'server_id';  # 结果为1
show variables like 'gtid_mode';  # 结果为ON

show master status; # 查看binlog文件名和位置(后续用到)

mysql> show master status; 
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

从库配置

[mysqld]
# 2. 从库核心配置
server-id=101  # 唯一ID(≠主库100)
relay_log=mysql-relay-bin  # 开启中继日志(从库同步依赖)
relay_log_recovery=1  # 中继日志损坏时自动恢复(提高稳定性)
read_only=ON  # 从库设为只读(避免误写,超级用户仍可写)
super_read_only=ON  # 禁止超级用户写(MySQL 5.7+,强化只读)
log_slave_updates=1  # 从库同步的操作记录到自身binlog(可选,若从库需作为其他从库的主库则开启)# 3. GTID配置(与主库一致)
gtid_mode=ON
enforce_gtid_consistency=ON

备份主库数据

 # 锁定主库,防止数据写入
mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"
mysql -u root -p -e "SHOW MASTER STATUS;" > master_status.txt# 备份数据
mysqldump -u root -p --all-databases --master-data=2 > master_backup.sql# 解锁主库
mysql -u root -p -e "UNLOCK TABLES;"

从库恢复全量备份(核心:与主库数据一致)

systemctl stop mysqld.service
mysql -u root -p < master_backup.sql

重启从库后执行

CHANGE MASTER TO
MASTER_HOST='192.168.159.133',
MASTER_USER='repl',
MASTER_PASSWORD='Root123.com@',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154;START SLAVE;
SHOW SLAVE STATUS\G

如果主库不是3306,那么

重新配置主从复制,指定正确端口

STOP SLAVE;CHANGE MASTER TO
MASTER_HOST='192.168.159.133',
MASTER_PORT=3307,
MASTER_USER='repl',
MASTER_PASSWORD='Root123.com@',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154;START SLAVE;

主库配置:

[root@node2 ~]# cat /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.socksymbolic-links=0log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
port=3307server-id = 1 # 主库唯一ID(从库需不同)
log_bin = /var/lib/mysql/mysql-bin # binlog日志路径(自定义,确保磁盘空间充足)
binlog_format = ROW # 推荐ROW格式(避免SQL_MODE不一致、函数依赖等问题,数据一致性最高)
expire_logs_days = 7 # binlog保留7天(根据磁盘空间调整,避免占满)
innodb_flush_log_at_trx_commit = 1 # 事务安全性(可选,牺牲少量性能换一致性)
sync_binlog = 1 # 同步binlog到磁盘(可选,防止宕机丢失binlog)# 3. GTID配置(MySQL 5.7+,推荐开启)
gtid_mode=ON
enforce_gtid_consistency=ON
log_bin_use_v1_row_events=1  # 兼容低版本从库(可选)

从库配置:

[root@node2 etc]# cat /etc/my.cnf
[mysqld]
basedir = /u01/mysql
datadir = /u01/mysql/data
port = 3306
socket = /u01/mysql/tmp/mysql.sock
user = mysql
symbolic-links = 0# 2. 从库核心配置
server-id=2  # 唯一ID(≠主库100)
relay_log=mysql-relay-bin  # 开启中继日志(从库同步依赖)
relay_log_recovery=1  # 中继日志损坏时自动恢复(提高稳定性)
read_only=ON  # 从库设为只读(避免误写,超级用户仍可写)
super_read_only=ON  # 禁止超级用户写(MySQL 5.7+,强化只读)
log_slave_updates=1  # 从库同步的操作记录到自身binlog(可选,若从库需作为其他从库的主库则开启)# 3. GTID配置(与主库一致)
gtid_mode=ON
enforce_gtid_consistency=ON[mysqld_safe]
log-error = /u01/mysql/data/mysql.err
pid-file =  /u01/mysql/data/mysql.pid[client]
port = 3306
socket = /u01/mysql/tmp/mysql.sock
http://www.dtcms.com/a/589561.html

相关文章:

  • 基于SpringBoot+Vue+协同过滤算法的在线旅游系统
  • 【高并发服务器:HTTP应用】十六、HttpContext上下文模块 HttpServer服务器模块 服务器测试
  • 河南科兴建设有限公司网站茂名住房证书城乡建设局官方网站
  • MySQL JSON查询与索引
  • claude code 自定义命令
  • NET_CAPABILITY_VALIDATED 检测android外网是否可用
  • Gin使用
  • SpringAI整合deepseek的一个简单入门案例
  • 突破智能体训练效率瓶颈:Tree Training如何通过共享前缀重用实现3.9倍加速?
  • Java面试题及答案整理( 2025年11月更新版,持续更新...)
  • 定制营销型网站公司色目人
  • 网站普查建设背景网站推广建议
  • 做网站永久嘟嘟浏览器
  • PS1模拟器 DuckStation更新最新版整合 下载即玩 附PS1Bios/游戏/金手指 安卓版+电脑版
  • Java复习事务相关 mysql事务隔离级别 spring事务的传播机制 2025年11月9日
  • 做网站公司排行榜洛阳做网站公司电话
  • 如何发布网站站长是什么职位
  • Vue基本路由
  • 基于springboot的作业管理系统设计与实现
  • Tauri开发手记——1.开发环境
  • 天翼云 ECS 弹性云主机的IP地址无法访问,无法访问 ECS 的网站,解决方案(随手记)
  • 名费网站制作视频教程淘宝代运营公司哪家好
  • 【开题答辩全过程】以 基于springboot美食分享网站为例,包含答辩的问题和答案
  • 福永自适应网站建智能建站系统官网
  • 【FPGA+DSP系列】——MATLAB simulink仿真整流电路
  • (* clock_buffer_type=“NONE“ *)
  • 上海网站建设最佳方案本地wordpress 上传到服务器
  • 消除FFmpeg库的SONAME依赖
  • 网站制作金华公司电话免费培训seo
  • Qt编程Action:Qt的自动反色方案