带有大 SQL 导入错误的 PhpMyAdmin 超时

Posted

技术标签:

【中文标题】带有大 SQL 导入错误的 PhpMyAdmin 超时【英文标题】:PhpMyAdmin timeout with large SQL import error 【发布时间】:2011-10-25 22:07:24 【问题描述】:

当我尝试将一个大(5000 行)的 sql 文件粘贴到 phpMyAdmin 时,我得到了这个错误?我知道我可以使用上传,但是在我的旧版本的 PhpMyAdmin 上,这曾经可以正常工作。

ALERT - configured request variable value length limit exceeded - dropped variable 
'sql_query' (attacker '111.171.123.123', file '/usr/share/apache2/phpmyadmin/import.php'),
referer: https://example.co.uk/phpmyadmin/db_sql.php?db=test&server=1&
token=0f355f8bbc6fc09d5c512e0409e9cac9&db_query_force=1

我已经尝试过更改$cfg['ExecTimeLimit'] = 0;

php.ini

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
max_execution_time = 120     
; Maximum amount of time each script may spend parsing request data
max_input_time = 60 
;max_input_nesting_level = 64 ; Maximum input variable nesting level
;Maximum amount of memory a script may consume (128MB)
memory_limit = 100M 

【问题讨论】:

如果您要导入一些备份,请尝试使用命令行界面导入文件。 好的,但我不经常在命令行上工作,而且我总是用 PhpMyAdmin 打开浏览器,所以这对我来说容易多了。 【参考方案1】:

就我而言,这条消息意味着Suhosin(PHP 的安全补丁)因其长度而阻止了您的请求。在不更改 Suhosin 配置的情况下解决问题的最简单方法 - 将具有相同 SQL 语句的文件导入 PHPMyAdmin(它允许上传文件以进行导入)。

所以基本上你只需要创建一个简单的文本文件,将相同的 SQL 语句粘贴到其中,然后将该文件上传到 PHPMyAdmin——它具有用于此类导入的相应页面。

【讨论】:

【参考方案2】:

如果您真的想使用 PhpMyAdmin,请尝试使用 3.4.3.2 或更高版本,因为我不确定您的版本是否有此功能

部分导入 如果脚本检测到它接近 PHP 超时限制,则允许中断导入。 (这可能是导入大文件的好方法,但它可能会破坏事务。)

http://www.phpmyadmin.net/home_page/index.php

希望对你有帮助。

【讨论】:

以上是关于带有大 SQL 导入错误的 PhpMyAdmin 超时的主要内容,如果未能解决你的问题,请参考以下文章

在 phpmyadmin 中重新提交相同的 sql 文件

将 sql.zip 文件导入 phpmyadmin 时出现内存大小错误

phpMyAdmin 导入错误 #1064 “您的 Sql 语法有错误”

如何在没有此错误的情况下将此 SQL 转储导入 PhpMyAdmin?

怎样使用phpmyadmin导入大数据的方法

使用 phpMyAdmin 导入 SQL 文件时出错