必须同步修改upload_max_filesize、post_max_size、max_execution_time、max_input_time和memory_limit,且需确认修改的是PHP-FPM/Apache实际加载的php.ini文件,否则配置无效。

直接改配置没用,是因为你只调了 upload_max_filesize,却漏掉了 post_max_size、max_execution_time、max_allowed_packet 这三个关键限制——它们任何一个卡住,都会导致“正在导入…”后白屏、中断或无响应。
为什么改了 php.ini 还是失败?确认你改的是 Apache/PHP-FPM 正在加载的那个
很多人改完 php.ini 重启服务仍无效,根本原因是:Apache 和 PHP-FPM 可能加载不同配置文件,而 WAMP/XAMPP/宝塔还自带多套 PHP 环境。唯一可靠办法是访问 phpMyAdmin 页面底部的「PHP Info」链接,搜索 Loaded Configuration File,看到的路径才是真正在用的那个。改错位置等于没改。
常见错误现象:
- 页面空白、卡在“正在导入…”不动
- 点执行后跳回导入页,不报错也不导入
- PHP 错误日志里出现
Maximum execution time of 30 seconds exceeded
必须同步修改的参数(单位写 M,别写 MB 或带空格):
立即学习“PHP免费学习笔记(深入)”;
-
upload_max_filesize = 512M(单个文件上限) -
post_max_size = 512M(整个 POST 请求体,必须 ≥ upload_max_filesize) -
max_execution_time = 600(脚本执行时间,设 0 表示不限制,但生产环境慎用) -
max_input_time = 600(接收 POST 数据超时,大文件上传慢时容易触发) -
memory_limit = 512M(解析 SQL 时吃内存,WordPress 导出文件常含百万级 INSERT)
MySQL 层也拦着:max_allowed_packet 默认只有 4MB
phpMyAdmin 把 SQL 文件读进 PHP 内存后,再分段发给 MySQL 执行。但 WordPress 导出的 SQL 常含单条几 MB 的 INSERT 语句,一旦超过 MySQL 的 max_allowed_packet(默认通常 4MB),MySQL 就静默丢包——不报错、不提示,只让页面卡住或变白。
查当前值:
mysql -u root -p -e "SHOW VARIABLES LIKE 'max_allowed_packet';"
临时生效(本次会话):
SET GLOBAL max_allowed_packet = 268435456;
永久生效(Linux/macOS 编辑 /etc/mysql/my.cnf,Windows 改 my.ini):
[mysqld] max_allowed_packet = 256M
改完必须重启 MySQL 服务,否则不生效。
SEO关键词密度优化与页面审计技能。使用场景:①提供页面路径与关键词进行SEO优化;②提升页面关键词密度;③提升搜索引擎排名;④进行SEO审计(meta标签、OG、hreflang等)。触发词:关键词密度、SEO优化、关键词优化等。
phpMyAdmin 自身还有个轮询计时器:$cfg['ExecTimeLimit']
即使 PHP 和 MySQL 都放行了,phpMyAdmin 会在前端用 JavaScript 轮询导入进度,默认 300 秒超时。它不是报错,而是直接停止轮询,让你以为“卡死了”。
解决方法:编辑 phpMyAdmin 根目录下的 config.inc.php,在末尾加一行:
$cfg['ExecTimeLimit'] = 0;
注意:这行不能加在 /* End of servers configuration */ 后面,否则会被忽略;必须加在配置块内或末尾有效位置。
超过 200MB 就别硬扛了,命令行导入更稳
phpMyAdmin 是管理界面,不是批量工具。它把整个 SQL 读进内存再切片执行,遇到 500MB+ 文件极易 OOM 或超时。真正靠谱的做法是绕过上传环节,直连 MySQL 导入。
前提:SQL 文件已上传到服务器(比如 /www/backup/site.sql),且确认不含 CREATE DATABASE 或 USE 语句(否则可能覆盖错库)。
执行命令(替换对应参数):
mysql -u root -p your_database_name < /www/backup/site.sql
如果提示 mysql: command not found,用完整路径:
/www/server/mysql/bin/mysql -u root -p your_database_name < /www/backup/site.sql
容易被忽略的细节:
- SQL 文件编码必须是 UTF-8 无 BOM,否则中文乱码
- 导入前建议手动加
SET FOREIGN_KEY_CHECKS=0;,结尾加SET FOREIGN_KEY_CHECKS=1;,避免外键冲突中断 - 若文件含存储过程或
DELIMITER $$,确保 MySQL 版本支持(如 MySQL 8.0 对语法更严格)
最麻烦的其实不是改参数,而是改完忘了重启对应服务——Apache、PHP-FPM、MySQL,三者缺一不可。改完不重启,等于白改。


















