答案是改max_execution_time只能缓解表象,真正卡点在$cfg['exectimelimit']或max_allowed_packet;需修改config.inc.php设$cfg['exectimelimit']=0,并调大max_allowed_packet,命令行导入最可靠。

改 max_execution_time 只能缓解表象,真正卡点常在 phpMyAdmin 自身的 $cfg['ExecTimeLimit'] 或 MySQL 的 max_allowed_packet —— 单调 PHP 执行时间,大概率还是超时。
为什么改了 max_execution_time 还报 “Script timeout passed”
因为 phpMyAdmin 在导入流程中不依赖 PHP 全局超时机制,而是主动轮询自己的 $cfg['ExecTimeLimit'](默认 300 秒)。即使你把 max_execution_time 改成 1200,它仍会在约 300 秒处中断并报错。
- 打开
XAMPP\phpMyAdmin\config.inc.php(不是config.default.php),在$cfg['blowfish_secret']后追加:$cfg['ExecTimeLimit'] = 0; - 该配置优先级高于
php.ini,设为0表示禁用其内部计时 - 无需重启 Apache,但必须清空浏览器缓存或换无痕窗口重进 phpMyAdmin
上传阶段就失败?检查 upload_max_filesize 和 post_max_size
错误提示 “No data was received to import” 或 “File exceeds the maximum allowed size”,说明 PHP 根本没收到文件——上传被拦在第一关。
- 先访问
http://localhost/dashboard/phpinfo.php,搜索Loaded Configuration File,确认真实生效的php.ini路径 - 用管理员权限打开该文件,确保以下三行存在且未注释:
upload_max_filesize = 256M、post_max_size = 256M、memory_limit = 512M -
post_max_size必须 ≥upload_max_filesize,否则 POST 数据在接收完成前就被截断 - 改完必须在 XAMPP 控制面板里点 Apache → Stop 再 → Start,仅刷新页面无效
命令行导入才是绕过所有限制的可靠方案
只要 SQL 文件不含深度嵌套的 DELIMITER 或交互式语句(如 source),命令行方式完全跳过 PHP 解析、HTTP 请求和 Web 渲染三层瓶颈。
- 终端进入
XAMPP\mysql\bin目录,执行:mysql -u root -p --default-character-set=utf8mb4 your_db_name - 输入密码后,执行:
source C:/path/to/your/file.sql(路径用正斜杠或双反斜杠) - 该方式不受
$cfg['ExecTimeLimit']、max_execution_time、post_max_size任何一项影响 - 导入前可加
SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;加速,完成后恢复
真正容易被忽略的是:MySQL 层的 max_allowed_packet 不够时,会表现为页面空白或假性超时,而非明确报错。执行大 INSERT 或含长字段的 CREATE TABLE 前,务必确认并提升该项值。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











