生产环境mysql如何实现高可用_配置主从复制与自动故障切换

主从复制SHOW SLAVE STATUS显示Connecting的常见原因是网络通但权限或配置未对齐:主库需开启binlog且server_id全局唯一;从库CHANGE MASTER TO中MASTER_HOST不能为localhost或127.0.0.1,须填真实IP或域名。主从复制配不起来,SHOW SLAVE STATUS 一直显示 Connecting常见原因是网络通但权限或配置没对齐。主库必须开 binlog,且 server_id 要全局唯一;从库的 CHANGE MASTER TO 中 MASTER_HOST 不能写 localhost 或 127.0.0.1(容器或跨主机时尤其容易错),得填可路由的真实 IP 或域名。实操建议:主库检查:SELECT @@log_bin, @@server_id;,确保返回 ON 和非零整数从库执行前先停掉复制:STOP SLAVE;,改完配置再 START SLAVE;用 mysql -h 主库IP -u repl_user -p 在从库机器上手动连一次,验证账号、网络、防火墙三关如果主库开了 require_secure_transport=ON,从库的 CHANGE MASTER TO 必须加 MASTER_SSL=1 参数故障切换后业务连不上新主库,ERROR 2003 (HY000) 持续报错自动切换本身不等于服务自动重连。MySQL 客户端不会感知主从角色变化,应用层仍连着旧地址------除非你用了中间件或代理层做流量调度。实操建议:别依赖 DNS 切换:TTL 延迟、客户端缓存、glibc 的 getaddrinfo 行为都不可控推荐用 ProxySQL 或 MaxScale 做读写分离+故障感知,它们能监听 SHOW SLAVE STATUS 变化并自动踢掉失效节点若用 VIP 方案(如 keepalived),确保 ARP 刷新及时,且从库机器禁用 arp_ignore 和 arp_announce 冲突配置应用连接串里不要硬编码 IP,至少用 host 文件或内网 DNS 名,并配合连接池的 validationQuery(如 SELECT 1)快速剔除坏连接semi-sync 开了但复制延迟还是高,甚至退化成异步半同步不是银弹。只要一个从库响应超时(默认 rpl_semi_sync_master_timeout=10000,单位毫秒),主库就自动切回异步模式,且不会告警------你得自己监控 Rpl_semi_sync_master_status 和 Rpl_semi_sync_master_no_tx 这两个状态变量。 跃问 跃问是由阶跃星辰开发的免费AI智能问答助手,随时帮你智能搜索、高效阅读、识图理解、和你畅聊感兴趣的话题。

相关推荐
jason_renyu1 小时前
图书馆管理系统完整开发文档(Flask + Vue3 + Element Plus + MySQL )
python·python学习·flask毕业设计例子·flask学习例子·flask入门
费弗里1 小时前
新版本Dash完美支持原生FastAPI后端
python·fastapi·dash
Ulyanov2 小时前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio环境搭建与核心工作区详解
开发语言·python·qt·系统仿真·雷达电子战系统仿真
2301_816660212 小时前
c++ openimageio工具 c++如何使用oiiotool进行图像批量处理
jvm·数据库·python
Kristrina2 小时前
MySQL大小写敏感、MySQL设置字段大小写敏感
数据库·mysql
Teable任意门互动2 小时前
多维表格本地化部署实践解析,企业如何实现数据自主可控路径
数据库·低代码·信息可视化·开源·数据库开发
曼岛_2 小时前
[逆向工程]160个CrackMe入门实战之Andrnalin.2解析(九)
java·数据库·microsoft·逆向
m0_377618232 小时前
SQL性能调优:为何尽量使用窗口函数而非关联子查询
jvm·数据库·python
IT邦德2 小时前
MySQL9.7 LTS版本发布,性能飞跃!
数据库