必须先修改php.ini中upload_max_filesize、post_max_size和memory_limit并重启apache,否则无效;若仍失败,应改用mysql命令行导入以绕过php限制。
直接改 php.ini 里的 upload_max_filesize 和 post_max_size 是唯一有效起点,其他操作(比如只改 config.inc.php)都不解决根本问题。
确认并修改正确的 php.ini 文件路径
很多人改了配置却无效,是因为改错了文件——XAMPP 可能有多个 php.ini(CLI 版、Apache 版、不同 PHP 版本),而 phpMyAdmin 走的是 Apache SAPI,只认它加载的那个。
- 在浏览器访问
http://localhost/dashboard/phpinfo.php(或自己建个info.php,内容为<?php phpinfo(); ?>) - 搜索
Loaded Configuration File,看到的路径才是真实生效的php.ini - Windows 下常见路径是
C:\xampp\php\php.ini,但若启用了多版本 PHP(如控制面板右上角切换过),路径可能带版本号,例如C:\xampp\php\php-8.2.0\php.ini - 用管理员权限打开编辑器修改,避免保存失败
必须同步调整的三个 php.ini 参数
upload_max_filesize 和 post_max_size 是硬性闸门,缺一不可;memory_limit 不直接限制上传,但大 SQL 解析时 PHP 需要足够内存,否则导入中途崩溃。
-
upload_max_filesize = 512M(建议设为比目标 SQL 文件大 20%) -
post_max_size = 512M(必须 ≥upload_max_filesize,否则 POST 数据在上传完成前就被截断) -
memory_limit = 512M(低于 256M 容易在解析 INSERT 语句时 OOM) - 改完保存后,**必须点击 XAMPP 控制面板中 Apache 行的 “Stop” 再 “Start”** ——仅重启 MySQL 没用
导入仍卡死或报 “Script timeout passed”?补全超时和执行限制
即使上传成功,phpMyAdmin 还会卡在脚本执行阶段:它把整个 SQL 读进内存再逐条执行,遇到百万行 INSERT 就容易超时或假死。
- 在同一个
php.ini中搜max_execution_time,改为max_execution_time = 600(10 分钟) - 顺手改
max_input_time = 600,防止 POST 数据解析超时中断 - 在
phpMyAdmin\config.inc.php里加一行:$cfg['ExecTimeLimit'] = 0;(禁用其内部计时,但不绕过max_execution_time)
超过 200MB 或反复失败?换 mysql 命令行导入
这是最稳的兜底方案:完全跳过 PHP 上传和解析流程,不受任何 php.ini 限制,也避免中文乱码。
- 确保 MySQL 正在运行(XAMPP 控制面板里显示 “Running”)
- 打开 CMD/PowerShell,进入
C:\xampp\mysql\bin(按你实际安装路径调整) - 执行:
mysql -u root -p --default-character-set=utf8mb4 database_name - 密码为空直接回车;若设了密码,输完不显示,按回车即可
是重定向符号,比 <code>source更可靠——后者需先登录 MySQL 再执行,容易因路径斜杠、空格、编码等问题出错
真正容易被忽略的点是:post_max_size 必须同步且 ≥ upload_max_filesize;更隐蔽的是,即使参数全调高,phpMyAdmin 的内存模型本身就不适合处理含大量 INSERT 的单文件——这不是配置能修复的架构限制。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











