phpMyAdmin“配置存储未完全配置”提示的根本原因是phpmyadmin数据库及其15张控制表缺失或控制用户权限不足。需手动创建phpmyadmin库、专用controluser并授权,导入create_tables.sql,再在config.inc.php中正确配置controlhost/controluser/controlpass,特别注意MySQL 8+认证插件兼容性。
这个问题本质是 phpmyadmin 缺少可写的配置存储表(phpmyadmin 数据库),不是权限或配置文件写错那么简单,不建表就永远会弹这个提示。
为什么 phpMyAdmin 一直报“配置存储未完全配置”
phpMyAdmin 在启用某些功能(如保存 SQL 查询、设置列显示偏好、管理关系/隐藏字段等)时,依赖一组特定数据表。这些表默认应存在于名为 phpmyadmin 的数据库中,并由当前登录用户(如 root)拥有 SELECT/INSERT/UPDATE/DELETE 权限。如果该库不存在、表缺失、权限不足,或 config.inc.php 中的 $cfg['Servers'][$i]['controluser'] 和 controlpass 指向的控制用户无权访问它,就会持续触发该警告。
手动创建 phpmyadmin 数据库和控制用户
推荐用 MySQL 命令行操作,避免依赖 phpMyAdmin 自身(此时它可能还不可用):
CREATE DATABASE IF NOT EXISTS `phpmyadmin`; GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pma'@'localhost' IDENTIFIED BY 'your_strong_password'; FLUSH PRIVILEGES;
然后导入表结构(路径依安装方式而异):
- Debian/Ubuntu:运行
sudo mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql - CentOS/RHEL:通常在
/usr/share/doc/phpMyAdmin-*/examples/create_tables.sql - 手动下载:从 phpMyAdmin 官网对应版本的
sql/create_tables.sql文件
配置 config.inc.php 启用控制用户
编辑 config.inc.php(常位于 /etc/phpmyadmin/ 或 phpMyAdmin 根目录),确保以下几行存在且未被注释:
立即学习“PHP免费学习笔记(深入)”;
$cfg['Servers'][$i]['controlhost'] = 'localhost'; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'your_strong_password';
注意:
-
$i是当前服务器索引(通常为1,若只配一个 MySQL 实例) -
controluser必须是上一步创建的专用用户(不要用root) - 如果 MySQL 绑定到 Unix socket,
controlhost可设为空字符串'',但需确认 socket 路径在 MySQL 配置中一致
常见踩坑点
这个提示反复出现,往往卡在这些细节:
- 控制用户密码含特殊字符(如
@、$)没被正确转义,导致连接失败 —— 换成纯字母数字密码先验证 - MySQL 8+ 默认认证插件是
caching_sha2_password,而旧版 phpMyAdmin 不兼容 —— 创建用户时显式指定:CREATE USER 'pma'@'localhost' IDENTIFIED WITH mysql_native_password BY '...' -
create_tables.sql导入后,检查phpmyadmin库下是否有pma__bookmark、pma__relation等 15 张表;缺任何一张都会报“未完全配置” - Web 服务器用户(如
www-data)对config.inc.php有读权限即可,不需要写权限 —— 别误加chmod 777
真正麻烦的不是建库建表,而是控制用户权限与 MySQL 认证机制的匹配;一旦连不上 phpmyadmin 库,所有配置存储功能就形同虚设。



















