phpmyadmin 导出大数据库报 504 或空白页,主因是 php 执行超时或内存不足;需修改 php.ini 中 max_execution_time、memory_limit、post_max_size 和 upload_max_filesize 并重启 apache,关闭导出压缩,改用命令行导入并同步调整 mysql 字符集为 utf8mb4。

phpMyAdmin 导出大数据库报 504 或空白页
根本不是导出功能本身坏了,而是 PHP 执行超时或内存不够。XAMPP 默认 max_execution_time = 30,导出几百 MB 的库时,PHP 还在拼 SQL 字符串就中断了。
必须改 php.ini(不是 config.inc.php):
– 搜 max_execution_time,改成 max_execution_time = 600(10 分钟)
– 搜 memory_limit,设为 memory_limit = 512M 或 -1(仅调试用)
– 搜 post_max_size 和 upload_max_filesize,都设成 64M 以上(导出页也走 POST 提交选项)
– 改完一定重启 Apache,否则白改
顺手关掉 phpMyAdmin 导出页的「压缩」选项——gzip/zip 是在 PHP 层做,极易触发超时;导出纯 SQL 后用本地 7-Zip 压更稳。
导入 SQL 文件提示“超出上传大小限制”
错误源头不在 phpMyAdmin,而在 PHP 的上传机制卡住了:两个配置项同时起效:upload_max_filesize 和 post_max_size。默认通常是 2M 或 8M,而一个中等 WordPress 库导出的 SQL 就可能 80MB+。
操作要点:
– 先访问 http://localhost/dashboard/phpinfo.php,找 Loaded Configuration File 确认真实生效的 php.ini 路径
– 用管理员权限打开那个文件,搜 upload_max_filesize,改为比如 upload_max_filesize = 256M
– 继续搜 post_max_size,设为相同值或更大:post_max_size = 256M(它必须 ≥ 前者)
– 保存后,在 XAMPP 控制面板里「重启 Apache」,不是只刷新页面
验证是否生效:再刷一次 phpinfo() 页面,搜索这两项,确认数值已更新。
改完还是 500 错误或导入中途断连
说明你已经撞上 phpMyAdmin 自身架构瓶颈:它会把整个 SQL 文件读进 PHP 内存,再逐行 mysqli_query() 执行。几百万行 INSERT 一进来,PHP 进程直接 OOM 或被 Apache 杀掉。
这时候别调参数了,换命令行:
– 确保 MySQL 正在运行(XAMPP 面板显示 Running)
– 打开 CMD/PowerShell,执行:cd C:\xampp\mysql\bin
– 运行:mysql -u root -p --default-character-set=utf8mb4 your_db_name
– 回车后输入密码(空密码直接回车),然后粘贴:source C:\path\to\your\dump.sql
注意:source 是 MySQL 客户端命令,不是 shell 命令;路径要用正斜杠或双反斜杠,单反斜杠会报错;如果文件含中文或 emoji,--default-character-set=utf8mb4 这个参数不能省,否则导入后全是问号。
导入成功但中文乱码或建表失败
不是 SQL 文件有问题,是 MySQL 服务端默认字符集没对齐。XAMPP 自带的 my.ini 默认 character-set-server = latin1,哪怕你导出时用了 utf8mb4,服务端一解析就转成乱码。
必须改 C:\xampp\mysql\bin\my.ini(不是别的位置的 my.cnf):
– 在 [mysqld] 段下添加两行:character-set-server = utf8mb4collation-server = utf8mb4_unicode_ci
– 删掉所有 default-character-set 相关行(该参数已废弃)
– 保存后,用 XAMPP 面板「Stop」→「Start」MySQL,彻底重启服务
重启后立刻验证:SHOW VARIABLES LIKE 'character_set_server';
返回值必须是 utf8mb4。如果不是,说明改错了文件或段落。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











