生产环境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智能问答助手,随时帮你智能搜索、高效阅读、识图理解、和你畅聊感兴趣的话题。

相关推荐
充钱大佬7 小时前
Python测试基础教程
python·log4j·apache
小二·8 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手9 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌9 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
初心丨哈士奇9 小时前
Python 四大基础容器|列表篇
python
蓝天下的守望者9 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
明理的信封10 小时前
AI 基础设施的“去 Python 化“:Rust 与 C# 的两条替代路径
人工智能·python·rust
上海云盾-小余10 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹10 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创