导出失败提示Access denied或无反应、导入无文件选择框或报“未接收到数据”,主因是权限链中断:MySQL缺LOCK TABLES权限、PHP的upload_max_filesize/post_max_size/max_execution_time配置过小,或Nginx的client_max_body_size限制导致请求被提前拦截。

导出失败时提示 Access denied 或点击无反应,导入时没文件选择框或直接报错“没有接收到要导入的数据”,基本可以断定是权限链某处断了——不是你不会点按钮,而是 PHP、MySQL 或 Web 服务器在中途就把请求拦下了。
导出失败:先确认 MySQL 用户有没有 LOCK TABLES 权限
phpMyAdmin 导出整库或大表时,会自动加 LOCK TABLES 语句防止数据变动。缺这个权限,导出页可能静默失败(白屏/504),甚至不报具体错误。
- 登录 MySQL 命令行,执行
SHOW GRANTS FOR CURRENT_USER;,检查输出里是否含LOCK TABLES - 若缺失,用有 GRANT 权限的账号执行:
GRANT LOCK TABLES ON `your_db`.* TO 'your_user'@'localhost'; - 共享主机用户通常无法自行授予权限,得联系服务商开通;部分主机(如 SiteGround)明确禁用该权限,此时只能改用
mysqldump命令行导出
导入失败:上传环节卡在 PHP 配置,不是 phpMyAdmin 的锅
导入页没出现「浏览」按钮、点了没反应、或选完文件后提示“文件超出最大允许大小”,问题不在 phpMyAdmin 界面,而在 PHP 拒绝接收整个 POST 请求体。
- 必须同步调大三个配置项:
upload_max_filesize、post_max_size(需 ≥ 前者)、max_execution_time(建议 ≥ 600) - 别改错文件:CLI 的
/etc/php/8.2/cli/php.ini不生效,得改 FPM 或 Apache 对应的php.ini(路径可通过phpinfo()页面确认) - Nginx 用户额外检查
client_max_body_size,它必须 ≥post_max_size,否则请求在进 PHP 前就被 Nginx 拦截并返回 413 错误
导出后导入报 #1298 “Unknown or incorrect time zone”
这不是权限问题,但常被误判为环境异常。本质是 phpMyAdmin 在导出时写了 SET time_zone = "+00:00",而目标 MySQL 未加载时区表,或 mysql.time_zone 表为空。
立即学习“PHP免费学习笔记(深入)”;
- 临时绕过:用文本编辑器打开导出的
.sql文件,删掉所有以SET time_zone开头的行(通常在文件开头几行) - 根治方法:在目标 MySQL 执行
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql加载系统时区数据 - 注意:XAMPP/WAMP 等集成环境默认不加载时区表,重装或升级后容易复现此问题
真正难排查的,是权限层层嵌套——MySQL 用户缺一个 LOCK TABLES,PHP 因 post_max_size 过小丢弃请求,Nginx 又因 client_max_body_size 再拦一次。每个环节报错都藏得深,得挨个验证生效路径,而不是只盯着 phpMyAdmin 界面看。



















