超时非phpMyAdmin bug,而是PHP上传限制、phpMyAdmin自身ExecTimeLimit(默认300秒)、MySQL max_allowed_packet(默认4MB)三重限制叠加所致;需同步调整php.ini、phpMyAdmin config.inc.php及MySQL配置,并更新wp_options表中siteurl和home字段。
直接结论:超时不是 phpmyadmin 的 bug,而是三层限制叠加卡死——php 上传限制、phpmyadmin 自身执行时限、mysql 单包接收上限,三者任一没调都会失败。
为什么改了 php.ini 还报 “Script timeout passed”
因为 phpMyAdmin 用的是自己配置的 $cfg['ExecTimeLimit'],默认 300 秒,它在导入流程里主动轮询计时,完全不看 PHP 的 max_execution_time。哪怕你把 php.ini 改成 3600,它照样在第 301 秒弹窗报错。
- 打开 XAMPP(或宝塔、自建环境)里的
config.inc.php(不是config.default.php) - 在
$cfg['blowfish_secret']后面加一行:$cfg['ExecTimeLimit'] = 0;(设为 0 表示禁用) - 不用重启 Apache,但必须清空浏览器缓存或换无痕窗口重进 phpMyAdmin 才生效
导入中途白屏或卡住,其实是 MySQL 拒收大语句
WordPress 导出的 SQL 常含百万级 INSERT,单条语句长度可能超 10MB。MySQL 服务端靠 max_allowed_packet 控制单次接收上限,默认仅 4MB,超过就静默丢弃——页面卡住、变白、或报错但不提示真实原因。
- 查当前值:
mysql -u root -p -e "SHOW VARIABLES LIKE 'max_allowed_packet';" - 临时提升(本次会话有效):
SET GLOBAL max_allowed_packet = 268435456;(256MB) - 永久生效:编辑 MySQL 配置文件(Windows 是
my.ini,Linux/macOS 是my.cnf),在[mysqld]下加:max_allowed_packet = 256M,然后重启 MySQL 服务
上传阶段就失败?别只盯 upload_max_filesize
错误提示 “file exceeds the upload_max_filesize directive” 看似明确,但真正拦路的是两个参数中更小的那个:upload_max_filesize 和 post_max_size。后者必须 ≥ 前者,否则 POST 请求体被 Web 服务器截断,phpMyAdmin 根本收不到完整数据。
安全的随机密码生成器。支持自定义长度、字符类型(大写/小写字母、数字、特殊符号),排除相似字符,批量生成。纯 Python 标准库,无需 API 密钥。
- 确认你改的是 Web SAPI 对应的 php.ini:访问
phpinfo()页面,搜 “Loaded Configuration File”,路径才是生效的那个 - 至少同步设为:
upload_max_filesize = 2048M、post_max_size = 2048M、memory_limit = 1024M - 改完必须重启 Web 服务(Apache/Nginx/PHP-FPM),否则无效
- 宝塔用户注意:phpMyAdmin 自带配置也得单独改,在其
config.inc.php末尾加ini_set('upload_max_filesize', '2048M');等三行,并新建upload/目录
最稳的方案永远是绕过 phpMyAdmin
命令行导入不经过 HTTP 请求、PHP 解析、前端渲染任何一层,自然没有超时、上传、内存溢出问题。唯一前提是你能 SSH 进服务器或有终端权限。
立即学习“PHP免费学习笔记(深入)”;
- 确保 MySQL 正在运行,执行:
mysql -u root -p --default-character-set=utf8mb4 wordpress_db - 进入客户端后,用:
source /path/to/your/file.sql;(路径用正斜杠,Windows 也要用/) - 如果 SQL 文件是 gzip 压缩的,先解压再导,或用管道:
zcat file.sql.gz | mysql -u root -p wordpress_db - 避免密码明文出现在命令行:把账号密码写进
~/.my.cnf,权限设为600
真正容易被忽略的是:WordPress 数据库导入后网站打不开,往往不是导入失败,而是 wp_options 表里的 siteurl 和 home 还指着旧地址。导入完成后第一件事就是进 phpMyAdmin 改这两项,别等报错再回头找。


















