必须先修改php.ini中的upload_max_filesize、post_max_size和memory_limit并重启Apache,否则其他操作无效;若仍失败,应改用mysql命令行导入以绕过PHP限制。

直接改 php.ini 里的 upload_max_filesize 和 post_max_size,再重启 Apache —— 这是唯一有效、且必须做的第一步。其他所有操作(比如改 phpMyAdmin 的 config.inc.php)都是次要或无效的。
为什么改了 php.ini 还没用?确认你改的是 Apache 加载的那个文件
很多人改错文件:XAMPP 可能有多个 php.ini(CLI 版、Apache 版、不同 PHP 版本),而 phpMyAdmin 走的是 Apache SAPI,只认它加载的那个。
- 在浏览器访问
http://localhost/dashboard/phpinfo.php(或自己建个info.php写<?php phpinfo(); ?>) - 搜索
Loaded Configuration File,看到的路径才是真实生效的php.ini - Windows 下注意文件可能被隐藏或权限锁定,建议用管理员权限打开编辑器修改
- 改完不重启 Apache = 白改;仅重启 MySQL 没用
必须同步调整的三个 php.ini 参数
upload_max_filesize 和 post_max_size 必须同时调大,且后者不能小于前者;否则上传会在 POST 阶段就被拦截,连进 phpMyAdmin 的机会都没有。
-
upload_max_filesize = 512M(设为比目标 SQL 文件大 20% 更稳妥) -
post_max_size = 512M(必须 ≥upload_max_filesize) -
memory_limit = 512M(大 SQL 解析时容易内存溢出,尤其含百万级 INSERT)
如果导入中途报 Script timeout passed 或页面空白,继续加:
立即学习“PHP免费学习笔记(深入)”;
-
max_execution_time = 600(默认 30 秒,根本不够解析几百万行) -
max_input_time = 600(防止 POST 数据接收超时中断)
即使参数全调高,phpMyAdmin 仍卡死或 500 错误?换命令行
phpMyAdmin 本身不是为大文件设计的:它把整个 SQL 读进 PHP 内存,逐条执行。一旦文件含大量 INSERT 或嵌套事务,极易崩溃 —— 这不是配置问题,是架构瓶颈。
- 确保 MySQL 正在运行(XAMPP 控制面板里 MySQL 显示 “Running”)
- 打开 CMD/PowerShell,进入
C:\xampp\mysql\bin(路径按你实际安装位置调整) - 执行:
mysql -u root -p --default-character-set=utf8mb4 database_name < C:\path\to\dump.sql - 密码为空直接回车;若设了密码,输完不显示,按回车即可
- 该方式不走 PHP,不受任何
php.ini限制,也避免中文乱码(--default-character-set=utf8mb4是关键)
真正容易被忽略的点是:很多人反复调 upload_max_filesize 却忘了 post_max_size 必须同步且更大;更隐蔽的是,即使上传成功,phpMyAdmin 的内存模型和执行机制决定了它对 >100MB 的 SQL 文件天然不可靠 —— 这时候坚持图形界面,不如直接切命令行。



















