本质是PHP的upload_max_filesize和post_max_size配置限制,需同步调大二者(post_max_size≥upload_max_filesize)并重启服务;若仍失败,推荐用mysql命令行直导,完全绕过上传限制。
phpmyadmin 执行 sql 时提示“文件上传大小限制”,本质是 php 的 upload_max_filesize 和 post_max_size 配置在拦路,不是 phpmyadmin 本身的问题。
为什么导入大 SQL 文件会失败?
phpMyAdmin 导入 SQL 文件走的是 PHP 的表单文件上传流程,受 PHP 运行时配置严格约束。即使 SQL 文件只有几 MB,只要超过 upload_max_filesize(如默认 2M)或 post_max_size(常设为 8M),就会在上传阶段被拒绝,页面通常显示“未选择文件”“空响应”或直接 500/400 错误——但 phpMyAdmin 往往只模糊提示“文件太大”或不报错就刷新。
-
upload_max_filesize控制单个上传文件最大体积 -
post_max_size必须 ≥upload_max_filesize,否则 POST 数据整体被截断 -
max_execution_time和memory_limit也会影响大 SQL 执行,但它们不会导致“上传失败”这个现象
如何快速定位当前限制值?
在 phpMyAdmin 页面右上角点击「其他」→「PHP 信息」,或直接访问 http://your-domain/phpmyadmin/phpinfo.php(需启用),搜索以下三项:
-
upload_max_filesize:常见值为2M、8M -
post_max_size:常见值为8M、16M -
max_input_time:影响上传超时,大文件建议调高(如300)
注意:如果看不到 phpinfo() 页面,说明被禁用——此时只能查 PHP 配置文件或联系服务器管理员。
修改配置的三种可行路径
优先级从高到低:PHP-FPM 配置 > .htaccess(仅 Apache + mod_php)> php.ini(全局,但可能无权限)
立即学习“PHP免费学习笔记(深入)”;
- 若用 Nginx + PHP-FPM:改
/etc/php/{version}/fpm/php.ini或对应 pool 的www.conf中的php_admin_value[upload_max_filesize],然后重启php-fpm - 若用 Apache + mod_php:在 phpMyAdmin 目录下建
.htaccess,加三行:php_value upload_max_filesize 64M<br>php_value post_max_size 128M<br>php_value max_input_time 600
(注意:主机商常禁用php_value,此时无效) - 若用共享主机且无 SSH 权限:检查控制面板(如 cPanel)是否有“PHP 配置编辑器”,或提交工单要求调高;部分面板支持 per-directory
php.ini
绕过上传限制的替代方案(推荐用于生产环境)
改 PHP 配置虽有效,但有安全与维护成本。更稳的方式是跳过 phpMyAdmin 上传界面:
- 用命令行
mysql客户端直连导入:mysql -u user -p database_name - 用
source命令在 MySQL CLI 中执行:mysql> use database_name;<br>mysql> source /var/www/html/large.sql;
(注意路径需 MySQL 进程有读取权限) - 拆分大 SQL:用
split -l 1000 large.sql part_拆成小文件,再逐个导入(适合无法接触命令行的场景)
真正容易被忽略的是:phpMyAdmin 的 Import 页面里有个“文件名”输入框,它支持本地路径粘贴(Chrome/Firefox),但实际仍走上传——这会让很多人误以为能绕过限制,其实不能。



















