这是phpmyadmin配置问题,非mysql本身故障;需导入create_tables.sql并校准config.inc.php中pma__前缀的表名配置。

直接结论:这不是 MySQL 数据库本身的问题,而是 phpMyAdmin 的配置存储表缺失或配置错位导致的——修复只需两步:导入缺失表 + 校准 config.inc.php 中的表名前缀。
为什么一打开 phpMyAdmin 就报 #1146 - Table 'phpmyadmin.pma__tracking' doesn't exist
这个错误说明 phpMyAdmin 启动时试图读取它的「内部功能表」(比如操作历史、UI偏好、结构跟踪等),但对应表在 phpmyadmin 数据库里根本不存在,或名字对不上。常见于:
- 全新安装 phpEnv 后未初始化 phpMyAdmin 配置库
- 手动删过
phpmyadmin数据库,但没重建表 -
config.inc.php里写的表名是pma_table_uiprefs,实际建的是pma__table_uiprefs(注意双下划线) - MySQL 启用了
lower_case_table_names=1,但建表语句用混合大小写,导致表名被强制转小写后不匹配
快速修复:导入 create_tables.sql 并确认数据库存在
phpMyAdmin 自带建表脚本,必须显式执行一次。路径取决于你的 phpEnv 安装位置(常见于):
- Windows 下通常在:
phpEnv\phpmyadmin\sql\create_tables.sql - Linux/macOS 下可能在:
/usr/share/phpmyadmin/sql/create_tables.sql或phpEnv/phpmyadmin/sql/create_tables.sql
执行方式(任选其一):
- 用 phpMyAdmin 界面:先创建空数据库
phpmyadmin→ 进入该库 → 「导入」→ 上传create_tables.sql - 命令行(推荐,更可靠):
mysql -u root -p phpmyadmin (密码为空时可省略 <code>-p</code>)
执行完后,进 phpMyAdmin 刷新页面,如果还报错,说明配置文件没对上——继续看下一步。
关键校准点:config.inc.php 里的表名必须和实际建的完全一致
phpMyAdmin 默认使用双下划线前缀(如 pma__tracking),但旧版文档或手动修改容易漏掉一个 _,变成 pma_tracking 或 pma_table_uiprefs。打开 config.inc.php,定位到类似这样的段落:
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
检查每一项是否都带 pma__(两个下划线),常见需核对的键包括:
-
bookmark→ 应为'pma__bookmark' -
recent→ 应为'pma__recent' -
table_uiprefs→ 应为'pma__table_uiprefs' -
column_info→ 应为'pma__column_info' -
history→ 应为'pma__history'
改完保存,**必须重启 Web 服务**(如 Apache/Nginx),且浏览器要硬刷新(Ctrl+F5)或清空缓存再登录——否则旧配置仍可能被缓存。
容易忽略的坑:MySQL 的 lower_case_table_names 和权限问题
即使表建了、配置也对了,仍报 #1146,就要怀疑底层机制:
- 运行
SHOW VARIABLES LIKE 'lower_case_table_names';,如果返回1,说明 MySQL 强制小写表名。此时你必须确保create_tables.sql中所有CREATE TABLE语句里的表名都是小写(官方脚本默认满足),且config.inc.php中写的也是全小写(如pma__tracking,不能写成PMA__TRACKING) - 检查
root用户对phpmyadmin数据库是否有SELECT/INSERT/UPDATE/DELETE权限:GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'root'@'localhost'; FLUSH PRIVILEGES;
- 极少数情况(如 XAMPP/Laragon 环境),
phpmyadmin数据库被损坏,可直接删库重建:DROP DATABASE IF EXISTS phpmyadmin; CREATE DATABASE phpmyadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
再重新导入create_tables.sql
真正卡住的地方往往不是“没建表”,而是“建了但 phpMyAdmin 没认出来”——根源几乎总在配置文件那几行表名声明上,多花一分钟核对双下划线,比反复重装快得多。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











