PhpMyAdmin多服务器配置存储 普通用户登录不生效问题咨询
问题根因
配置存储告警的核心原因是控制用户配置未生效:phpMyAdmin没有读取到合法的独立控制用户参数时,会默认用当前登录的数据库账号去访问phpmyadmin配置存储库。普通账号mike本身没有这个库的访问权限,自然触发告警;而test_pma本身持有phpmyadmin库全权限,哪怕控制用户配置失效,用自身登录身份就能正常访问配置库,所以不会报错。
你踩的两个配置坑
- 键名写错:你试的第二种写法
control_user/control_pass是无效参数,对应你当前使用的PMA版本,正确的键名是不带中间下划线的controluser和controlpass。 - 配置位置错:从你贴的配置结构看,你是单独写了两次控制用户参数,没有把这两行放进你批量给所有服务器配置pmadb表的循环里,导致Client 1对应的服务器节点根本没加载到控制用户配置。
修复方法
把正确的控制用户配置挪到批量配置pmadb参数的循环内部,和其他pma表配置放在一起即可,参考如下:
// 你原有的服务器循环逻辑 ... $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; // 把控制用户配置加在这里,注意键名不要加下划线 $cfg['Servers'][$i]['controluser'] = 'test_pma'; $cfg['Servers'][$i]['controlpass'] = 'test_pma'; // 下面是你原有的pma功能表配置,保持不动 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; // ...其余表配置保持原样
校验项
改完如果还有告警,排查两个点:
- Client 1上的test_pma用户授权host允许PMA所在的主服务器IP连接,不要只授权
localhost - test_pma确实拥有Client 1本地
phpmyadmin库下所有pma__前缀表的读写权限
内容的提问来源于stack exchange,提问作者Dimi
相关产品推荐
相关产品推荐

