phpMyAdmin 5.1 无法自动发现双主通道,「复制」页默认只执行不带 FOR CHANNEL 的 SHOW REPLICA STATUS,故仅查空通道;需手动在 SQL 标签页分别执行 SHOW REPLICA STATUS FOR CHANNEL 'chan_master_a' 和 FOR CHANNEL 'chan_master_b' 才能查看双主状态。

phpMyAdmin 5.1 无法配置主主同步,只能监控已手动配置好的两个通道状态;它不支持自动发现、不兼容 caching_sha2_password、不处理冲突逻辑,且必须为每个主节点显式指定唯一通道名。
为什么「复制」页看不到双主通道状态?
phpMyAdmin 5.1 的「复制」标签页默认只执行 SHOW REPLICA STATUS(无 FOR CHANNEL),即只查空字符串通道。主主架构下你必须建两个通道(如 chan_master_a 和 chan_master_b),而 phpMyAdmin 不会主动遍历 performance_schema.replication_connection_configuration 列出所有通道。
- 现象:点开「复制」页空白,或只显示一个通道的错误/断连信息
- 原因:没在 SQL 标签页手动执行
SHOW REPLICA STATUS FOR CHANNEL 'chan_master_a'和SHOW REPLICA STATUS FOR CHANNEL 'chan_master_b' - 补救:每次想查状态,都得进 SQL 标签页,分别执行两条带
FOR CHANNEL的语句
连接失败或权限报错的三个硬性前提
即使通道已用 CHANGE REPLICATION SOURCE TO ... FOR CHANNEL 建好,phpMyAdmin 连不上或查不到状态,大概率卡在这三处:
-
REPLICATION CLIENT权限缺失:仅REPLICATION SLAVE不够,SHOW REPLICA STATUS必须有REPLICATION CLIENT,执行:GRANT REPLICATION CLIENT ON *.* TO 'monitor_user'@'%'; FLUSH PRIVILEGES; - 认证插件不兼容:MySQL 8.0+ 默认用
caching_sha2_password,phpMyAdmin 5.1 只认mysql_native_password,执行:ALTER USER 'monitor_user'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd123'; - host 解析失败:从库上
SOURCE_HOST填了localhost或未解析域名,实际应填主库可被 DNS 解析的内网 IP 或容器别名(如db-master-a)
read_only 没生效会导致监控失真
主主架构下,任一节点若意外写入,会引发主键冲突或数据覆盖,但 phpMyAdmin 监控界面看不出这点——它只报同步线程状态,不校验数据一致性。真正的问题常藏在 read_only 配置里:
立即学习“PHP免费学习笔记(深入)”;
-
SET GLOBAL read_only = ON是临时的,MySQL 重启即失效 - 必须在
/etc/mysql/my.cnf的[mysqld]段加两行:read_only = ON和super_read_only = ON(MySQL 5.7.8+) - 验证是否落地:
SELECT @@read_only, @@super_read_only;返回两个1才算生效 - 否则你在 phpMyAdmin 里执行
INSERT居然成功,说明该节点已脱离主主保护机制
主主同步本身没有“中心监控视图”,phpMyAdmin 只是窗口,不是控制器;通道命名、权限、认证、配置持久化这四件事漏掉任何一环,监控就变成盲看——线程显示 Running,但数据早已不同步。



















