phpmyadmin的配置存储是名为“phpmyadmin”的数据库,用于持久化保存用户偏好设置(如最近sql、界面主题等),与config.inc.php无关;若缺失,个性化设置将重置且部分功能异常。
phpmyadmin 的配置存储到底是什么
“phpmyadmin” 这个数据库不是 phpmyadmin 自己的配置文件,而是它用来持久化保存用户偏好设置(比如默认排序、最近使用的 sql、界面主题、导航树展开状态等)的后端存储。它和 config.inc.php 完全无关——前者是运行时数据,后者是系统级启动配置。如果这个库被删了,你不会登录失败,但所有个性化设置会重置,某些功能(如“监视器”、“关系视图”、“pdf 页面生成”)可能报错或不可用。
确认 phpmyadmin 库是否真的丢失
别急着重建。先登录 phpMyAdmin,在左侧数据库列表里找名为 phpmyadmin 的库。如果没看到,再执行以下检查:
- 在 MySQL 命令行或另一个可用的 phpMyAdmin 实例中运行
SHOW DATABASES LIKE 'phpmyadmin';,确认它确实不存在 - 检查
config.inc.php中是否启用了配置存储:$cfg['Servers'][$i]['pmadb']是否设为'phpmyadmin'(默认值),且$cfg['Servers'][$i]['bookmarktable']、$cfg['Servers'][$i]['relation']等表名配置都指向该库下的对应表 - 查看错误日志:Apache 或 Nginx 的 error log 里是否有类似
mysqli_real_connect(): (HY000/1049): Unknown database 'phpmyadmin'的报错
用 create_tables.sql 快速重建 phpmyadmin 库
phpMyAdmin 安装包自带建表脚本,路径通常为:/usr/share/phpmyadmin/sql/create_tables.sql(Debian/Ubuntu)或 /usr/local/share/phpmyadmin/sql/create_tables.sql(源码安装)。Docker 镜像里一般在 /usr/src/phpmyadmin/sql/create_tables.sql。执行步骤如下:
- 确保你有 MySQL root 或足够权限的账号(能创建库、建表、授权)
- 用命令行导入:
mysql -u root -p - 如果提示权限拒绝,先手动创建库:
CREATE DATABASE IF NOT EXISTS `phpmyadmin` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;,再导入 - 导入后,检查表是否齐全:
USE phpmyadmin; SHOW TABLES;—— 应至少包含pma__bookmark、pma__relation、pma__table_info等 10 张表
权限与配置必须同步修正
建完库只是第一步。MySQL 用户必须被授予对 phpmyadmin 库的操作权限,否则 phpMyAdmin 仍会报“Access denied”或静默失效:
- 假设你的 phpMyAdmin 连接 MySQL 使用的是
phpmyadmin用户(常见于包管理器部署),运行:GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'phpmyadmin'@'localhost'; FLUSH PRIVILEGES; - 如果是 root 登录方式,确保
$cfg['Servers'][$i]['controluser']和$cfg['Servers'][$i]['controlpass']在config.inc.php中已正确定义,并且该 controluser 对phpmyadmin库有完整权限 - 重启 Web 服务(
systemctl restart apache2或nginx)让 PHP 配置生效,避免缓存干扰
真正容易被忽略的是:controluser 权限必须在建库之后才授予——很多人先建库、再改 config、最后才发现 controluser 根本没权限碰那张表,结果界面一切正常,但“关系”“PDF 导出”等功能始终灰色不可用。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











