导入WORDPRESS表时出现错误(接近" ON"位置25)(外键错误)

时间:2015-11-28 17:51:28

标签: php mysql wordpress

我尝试将一个大文件导入我的数据库(WordPress),它显示如下错误:

Error

Static analysis:

1 errors were found during analysis.

    Unrecognized keyword. (near "ON" at position 25)

SQL query: Edit Edit

SET FOREIGN_KEY_CHECKS = ON;

MySQL said: Documentation
#2006 - MySQL server has gone away

11 个答案:

答案 0 :(得分:27)

当我尝试将Drupal数据库迁移到新的本地apache服务器(我在Windows机器上使用XAMPP)时,我遇到了同样的错误。实际上我不知道这个错误的含义,但是在尝试下面的步骤之后,我导入了数据库而没有错误。希望这可以提供帮助:

在C:\ xampp \ php \ php.ini

更改php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
post_max_size = 1024M

在C:\ xampp \ mysql \ bin \ my.ini

更改my.ini
max_allowed_packet = 1024M

答案 1 :(得分:8)

  1. 转到XAMPP控制面板> 2.停止Apache和MySql服务>
  2. 点击Apache的配置>选择php.ini并更改以下内容:
          max_execution_time = 600
          max_input_time = 600
          memory_limit = 1024M
          post_max_size = 1024M

  3. 单击MySql的Config按钮并选择my.ini并更改:
       max_allowed_packet = 1024M

  4. 再次启动服务并尝试..我希望它能够工作。

答案 2 :(得分:3)

发生这种情况是因为导入大型数据库时 phpmyadmin 的导入连接问题,这里是如何将大型数据库导入 phpmyadmin。 首先根据您的数据库大小更改以下文件。


更改 C:\xampp\php\php.ini 处的 php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
post_max_size = 1024M

在 C:\xampp\mysql\bin\my.ini 更改 my.ini

max_allowed_packet = 1024M

然后从 xampp 控制面板运行 shell 并输入以下命令。

#mysql -p -u root DBname < c:\xampp\DBfolder\db.sql

EnterPassword: (usually it is blank).

然后该过程将开始。 :):):)

答案 3 :(得分:1)

尝试将Wordpess MySQL转储导入新服务器时遇到了同样的问题。经过一个小时的调试后,我不得不从.sql文件中手动删除以下表:

wp_cf7dbplugin_st wp_cf7dbplugin_submits

在某些导致问题的字段中存储了一些非常大的值(可能是PDF文件)。

从脚本中删除表后导入正常。

答案 4 :(得分:1)

当我尝试将Drupal数据库迁移到新的本地apache服务器时,我遇到了相同的错误(我在Windows计算机上使用XAMPP)。实际上,我不知道此错误的含义,但是在尝试了以下步骤之后,我没有错误地导入了数据库。希望这会有所帮助:

Changing php.ini at C:\xampp\php\php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
post_max_size = 1024M
Changing my.ini at C:\xampp\mysql\bin\my.ini

max_allowed_packet = 1024M

答案 5 :(得分:0)

只需指定Candle的上述答案即可。

您只需要在my.ini中调整一行:

  1. 将my.ini更改为C:\ xampp \ mysql \ bin \ my.ini或单击配置 XAMP>选择php.ini并更改以下内容:

    max_allowed_packet = 50M // the value depends on the size of the .sql files you are trying upload.

答案 6 :(得分:0)

对我来说,我的主要目标是为我的wordpress网站创建一个舞台,上面有wordfence。

我使用的是plesk obsidian,不得不更新mariadb以克服此处Error (near “ON” at position 25) while importing Table for WORDPRESS ( A foreign key Error)的主要问题中的错误,我可以通过阅读此博客文章-https://support.plesk.com/hc/en-us/articles/213403429-How-to-upgrade-MySQL-5-5-to-5-6-5-7-or-MariaDB-5-5-to-10-0-10-1-10-2-on-Linux-

来做到这一点。

这花了很长时间,但让我通过了上面的错误,但是随后在数据库导入时出现了此错误:

#1062 - Duplicate entry '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xEF\xBF\xBD\xEF\xBF\xBD' for key 'PRIMARY' when find and replace domain on wordfence

我正在执行域查找,并在vscode“ mydomain.com”中将其替换为“ stage.mydomain.com”。原来的问题是,wordfence将二进制数据或其他内容保存到数据库中,而仅在vscode中打开它并保存它就以某种方式对其进行了更改,从而引发了晦涩的duplicate entry error for primary key

针对上述问题的解决方法是不打开或更改vscode中的.sql文件,而是使用linux进行替换。这是我在Mac上执行此操作的命令-

找到并将http:替换为https:-

perl -pi -w -e 's/http:\/\/mydomain.com/https:\/\/mydomain.com/g;' my_db_file.sql

找到mydomain.com并将其替换为stage.mydomain.com-

perl -pi -w -e 's/mydomain.com/stage.mydomain.com/g;' my_db_file.sql

答案 7 :(得分:0)

如果您正在运行Wamp,只需执行以下操作:

  1. 编辑C:\ wamp64 \ bin \ mysql \ mysql5.7.26 \ my.ini
  2. 将最大数据包大小增加到1024: max_allowed_packet = 1024M

如果在此之后您遇到错误

脚本超时已通过,如果要完成导入,请重新提交 相同的文件和导入将恢复

然后执行以下操作:

  1. 转到C:\ wamp64 \ alias \ phpmyadmin.conf并增加以下值:

php_admin_value max_execution_time 360

php_admin_value max_input_time 360

在第3个(可选)步骤中获得RiggsFolly(https://stackoverflow.com/a/20364163/3231884)的信用

答案 8 :(得分:0)

我会仔细检查并确保您导入的是压缩文件而不是普通的 .sql 文件。使用 (gzip, bzip2, zip) 并在您的 ini 文件中将您的 max_allowed_pa​​cket 从 1M 调整为 5M 或 10M。

希望这对某人有所帮助。

答案 9 :(得分:0)

对我来说这个问题解决了

SQL compatibility mode: ANSI

我在上面更改为 ANSI 并且运行顺利。
我已经设置了这些..

max_execution_time = 120
max_input_time = 120
memory_limit = 512M
post_max_size = 64M

文件很大......所以重新导入同一个文件几次都可以顺利导入。

答案 10 :(得分:0)

经过很长时间,我终于卸载了 MAMP 并尝试了 XAMPP。有效。我不知道问题出在哪里,我编辑了所有限制(用另一个值创建了 my.cnf)但没有成功。使用 XAMPP,这些答案有效...