PHP配置修改后不生效,核心在于精准定位Apache实际加载的php.ini路径(通过phpinfo()确认)、同步调整upload_max_filesize与post_max_size、并重启Apache服务;超大SQL文件应优先使用mysql命令行导入。
直接改
里的
和
是对的,但改完不生效、改了还是报错、或者导入中途崩溃——这些都不是配置写错了,而是没踩准生效条件或忽略了协同参数。
确认你改的是 Apache 实际加载的
php
.ini
很多人在
里改了,但 Apache 加载的其实是另一个文件。XAMPP 控制面板右上角可能切换过 PHP 版本(比如 PHP 8.2 → 8.3),每个版本对应独立的
;Windows 下还可能因权限问题被系统重定向到临时路径。
访问
,搜索
,看它指向哪条完整路径
如果显示的是
,但你编辑的是
或桌面副本,就白改了
用管理员权限打开记事本(或 VS Code)再编辑,避免 Windows 隐藏写保护
upload_max_filesize 和 post_max_size 必须同步调大
只管单个文件大小,
管整个 POST 请求体(含文件 + 表单字段)。只要后者更小,上传就会在 PHP 解析层就被拦截,错误提示还是“文件超出上传大小限制”。
设成相同值最稳妥,例如:
和
不要只改一个:比如把
改到 1G,但
还是默认 8M,照样失败
单位必须带字母(
或
),写成
或
(小写)可能被忽略
光调上传限制还不够:memory_limit 和 max_execution_time 得跟上
phpMyAdmin 导入时会把整个 SQL 文件读进内存解析,再逐行执行。哪怕上传成功,脚本也可能在执行阶段因超时或内存溢出中断,表现为白屏、500 错误或 “Script timeout passed”。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
至少设为
,超大文件建议
(10 分钟),避免脚本被强制终止
,防止 POST 数据解析阶段超时(尤其网络慢或文件含 BLOB)
改完这四行后,**必须重启 Apache**——只点 MySQL 的 Restart 没用
超过 200MB 的 SQL 文件,别硬扛 phpMyAdmin
phpMyAdmin 是 Web 界面工具,不是数据库导入引擎。它把 SQL 全加载进 PHP 进程再模拟执行,遇到百万级 INSERT 或复杂视图定义极易崩溃,即使所有 PHP 参数都拉满也救不了。
优先用命令行:
确保 MySQL 正在运行,终端进入
目录再执行
如果提示
不是内部命令,就把该路径加进系统
,或直接在该目录下开 CMD
这条命令完全绕过 PHP,不受任何
或超时限制,也快得多
真正容易被忽略的点是:Apache 加载的
路径、
与
的协同关系、以及 phpMyAdmin 自身的架构瓶颈——它不是为导入几百 MB 数据设计的。命令行才是 XAMPP 下处理大 SQL 文件的默认路径,不是备选方案。
php.inimemory_limitupload_max_filesizeC:\xampp\php\php.iniphp.inihttp://localhost/dashboard/phpinfo.phpLoaded Configuration FileC:\xampp\php\php.iniphp.ini-developmentupload_max_filesizepost_max_sizeupload_max_filesize = 512Mpost_max_size = 512Mupload_max_filesizepost_max_sizeMG512512mmemory_limit512M1024Mmax_execution_time = 600max_input_time = 600mysql -u root -p mydb < C:\backup\dump.sqlC:\xampp\mysql\binmysqlPATHupload_max_filesizephp.inipost_max_sizeupload_max_filesize