如何有效处理XAMPP下phpMyAdmin导入文件无数据接收的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计828个文字,预计阅读时间需要4分钟。
这个错误不是 。
确认并修改真实生效的 php.ini
很多人改了半天没用,是因为编辑了错误的 php.ini 文件。XAMPP 可能加载的是 Apache 目录下的那个,而不是 PHP 目录里的“模板”文件。
- 访问
http://localhost/dashboard/phpinfo.php,搜索Loaded Configuration File,记下它显示的完整路径(比如C:\xampp\apache\bin\php.ini) - 用管理员权限打开该文件,不要改
php\php.ini-development或其他副本 - 确保以下三项都存在且被取消注释(行首无分号):
upload_max_filesize = 256M post_max_size = 256M max_execution_time = 600
post_max_size 必须 ≥ upload_max_filesize,否则 POST 数据还没进 PHP 就被截断;max_execution_time 太小会导致导出/导入中途超时断连。
重启 Apache(不是 MySQL,也不是只刷新页面)
改完 php.ini 后,XAMPP 控制面板里必须点「Apache → Stop」再「Start」。只重启 MySQL、只刷新 phpMyAdmin 页面、甚至只重启整个 XAMPP 程序都不够。
立即学习“PHP免费学习笔记(深入)”;
- 重启后务必再打开
phpinfo.php页面,搜索确认三项值已更新 - 如果仍显示旧值,说明你改的不是被加载的那个文件,或文件被系统只读保护(Windows 下右键文件属性 → 取消“只读”)
关掉 phpMyAdmin 导出页的「压缩」选项
即使你成功导出了大 SQL 文件,下次导入时若勾选了「gzipped」或「zipped」,phpMyAdmin 会在 PHP 层解压——这又是一次内存和时间消耗,极易触发 memory_limit 不足或超时。
- 导出时:在 phpMyAdmin 导出页,**取消勾选「压缩」**,选「SQL」格式直出纯文本
- 导入时:也别传
.sql.gz,传.sql即可 - 如需压缩传输,用 7-Zip 等本地工具压成 ZIP,解压后再导入,不走 PHP 解压流程
超 100MB 就别硬扛,直接用 mysql 命令行导入
phpMyAdmin 是 Web 工具,本质是把整个 SQL 文件读进 PHP 内存再逐行执行。一旦文件超过 100MB 或含几百万条 INSERT,PHP 进程大概率 OOM,或被 Apache 杀掉——这时候调参数意义不大。
- 确保 MySQL 正在运行(XAMPP 面板显示 Running)
- 打开 CMD,执行:
cd C:\xampp\mysql\bin - 再执行:
mysql -u root -p --default-character-set=utf8mb4 your_db_name(回车后输密码) - 进入 MySQL 客户端后,输入:
source C:/path/to/your/dump.sql(注意路径用正斜杠或双反斜杠)
命令行方式完全绕过 PHP 上传限制,也不吃内存,是真正稳定可靠的方案。唯一要注意的是:SQL 文件里不能有 CREATE DATABASE 或 USE 语句,否则会报错;如有,手动删掉或拆成两步执行。
本文共计828个文字,预计阅读时间需要4分钟。
这个错误不是 。
确认并修改真实生效的 php.ini
很多人改了半天没用,是因为编辑了错误的 php.ini 文件。XAMPP 可能加载的是 Apache 目录下的那个,而不是 PHP 目录里的“模板”文件。
- 访问
http://localhost/dashboard/phpinfo.php,搜索Loaded Configuration File,记下它显示的完整路径(比如C:\xampp\apache\bin\php.ini) - 用管理员权限打开该文件,不要改
php\php.ini-development或其他副本 - 确保以下三项都存在且被取消注释(行首无分号):
upload_max_filesize = 256M post_max_size = 256M max_execution_time = 600
post_max_size 必须 ≥ upload_max_filesize,否则 POST 数据还没进 PHP 就被截断;max_execution_time 太小会导致导出/导入中途超时断连。
重启 Apache(不是 MySQL,也不是只刷新页面)
改完 php.ini 后,XAMPP 控制面板里必须点「Apache → Stop」再「Start」。只重启 MySQL、只刷新 phpMyAdmin 页面、甚至只重启整个 XAMPP 程序都不够。
立即学习“PHP免费学习笔记(深入)”;
- 重启后务必再打开
phpinfo.php页面,搜索确认三项值已更新 - 如果仍显示旧值,说明你改的不是被加载的那个文件,或文件被系统只读保护(Windows 下右键文件属性 → 取消“只读”)
关掉 phpMyAdmin 导出页的「压缩」选项
即使你成功导出了大 SQL 文件,下次导入时若勾选了「gzipped」或「zipped」,phpMyAdmin 会在 PHP 层解压——这又是一次内存和时间消耗,极易触发 memory_limit 不足或超时。
- 导出时:在 phpMyAdmin 导出页,**取消勾选「压缩」**,选「SQL」格式直出纯文本
- 导入时:也别传
.sql.gz,传.sql即可 - 如需压缩传输,用 7-Zip 等本地工具压成 ZIP,解压后再导入,不走 PHP 解压流程
超 100MB 就别硬扛,直接用 mysql 命令行导入
phpMyAdmin 是 Web 工具,本质是把整个 SQL 文件读进 PHP 内存再逐行执行。一旦文件超过 100MB 或含几百万条 INSERT,PHP 进程大概率 OOM,或被 Apache 杀掉——这时候调参数意义不大。
- 确保 MySQL 正在运行(XAMPP 面板显示 Running)
- 打开 CMD,执行:
cd C:\xampp\mysql\bin - 再执行:
mysql -u root -p --default-character-set=utf8mb4 your_db_name(回车后输密码) - 进入 MySQL 客户端后,输入:
source C:/path/to/your/dump.sql(注意路径用正斜杠或双反斜杠)
命令行方式完全绕过 PHP 上传限制,也不吃内存,是真正稳定可靠的方案。唯一要注意的是:SQL 文件里不能有 CREATE DATABASE 或 USE 语句,否则会报错;如有,手动删掉或拆成两步执行。

