phpmyadmin本身不限制上传,真正限制来自php的upload_max_filesize和post_max_size配置,二者取较小值即为实际上传上限,且必须修改web sapi对应的php.ini并重启服务。

phpMyAdmin 本身不读取或控制 php.ini —— 修改它不会让 phpMyAdmin 突破 PHP 的上传限制。真正起作用的是你服务器上 PHP 运行时所加载的 php.ini 文件,且必须重启 PHP(或 Web 服务)才生效。
确认当前生效的 php.ini 路径和实际限制值
直接改错文件是常见失败原因。先在 phpMyAdmin 页面右下角点击「更多»」→「PHP 信息」,或新建一个 info.php 放在 Web 目录里写 <?php phpinfo(); ?>,打开后搜索:
-
Loaded Configuration File:这才是你要编辑的真实php.ini路径 -
upload_max_filesize:控制$_FILES上传上限(必须 ≥1G) -
post_max_size:必须 ≥upload_max_filesize,且包含所有 POST 数据(建议设为 1.2G) -
max_execution_time和max_input_time:大文件导入耗时长,建议设为 0(不限制)或 ≥600 -
memory_limit:phpMyAdmin 解析 SQL 时会载入整个文件到内存,1GB SQL 文件至少需要 2GB+ 内存;若不够,会报Allowed memory size exhausted
修改 php.ini 后必须重启 PHP 处理器
改完不重启等于没改。具体操作取决于你的环境:
- Apache + mod_php:重启
apache2或httpd服务 - Nginx + PHP-FPM:重启
php-fpm服务(如sudo systemctl restart php8.1-fpm),不是只 reload - Windows XAMPP/MAMP:用控制面板「Stop/Start」Apache 和 MySQL,但重点是 Apache(因 PHP 嵌入其中)
- 如果用的是 Docker,必须重建容器(
docker-compose up -d --build),挂载的php.ini不会热更新
即使参数调对,phpMyAdmin 仍可能拒绝 1GB 文件
这是设计限制,不是 bug。phpMyAdmin 默认用 fgets() 逐行读取 SQL 文件,1GB 文件极易触发超时、内存溢出或浏览器中断。真实可行路径只有两条:
- 用命令行
mysql客户端导入:mysql -u root -p database_name (推荐,无 PHP 层限制) - 拆分 SQL 文件:用
split -l 5000 file.sql part_拆成小块,再在 phpMyAdmin 中分批执行(注意保持事务完整性) - 检查 phpMyAdmin 配置:
$cfg['UploadDir']若已设置,可将文件先上传到服务器指定目录,再从 phpMyAdmin「导入」页选择「从 Web 服务器上传目录」——这绕过浏览器上传,但仍受 PHP 的upload_max_filesize限制
最常被忽略的一点:1GB 的 .sql 文件解压后可能远大于 1GB(比如含大量 INSERT VALUES),而 upload_max_filesize 限制的是上传前的文件大小。如果走浏览器上传,务必确认你传的是压缩包还是纯文本,以及是否启用了 Nginx/Apache 自身的 client_max_body_size / LimitRequestBody 限制。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











