无法将数据库导入服务器

时间:2016-02-17 16:46:36

标签: mysql database phpmyadmin

我总是以我再次使用的方式将数据库文件导入服务器。但是这次当我想要这样做时,我得到以下错误:

  

SQL查询:

     

phpMyAdmin SQL Dump SET SQL_MODE =“NO_AUTO_VALUE_ON_ZERO”

     

MySQL说:文档

     

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   'phpMyAdmin SQL Dump

附近      

在第1行设置SQL_MODE =“NO_AUTO_VALUE_ON_ZERO”

有没有人可以帮我解决这个问题?我总是使用这种方法,但这次我有这个错误。

提前致谢

5 个答案:

答案 0 :(得分:3)

我不知道它是否会再帮助某个人,但是我遇到了同样的问题并找到了解决方案。

@afroozhashemzadegani-如您所见,SQL错误消息中的“ NO_AUTO_VALUE_ON_ZERO”字符串后面还有一个附加字符。

@afroozhashemzadegani error message

错误消息中的字符相同:

My error message

所以我用十六进制打开了它:

copied error in hex

当我删除此人时,一切正常。老实说,我不知道它来自哪里,因为导出数据库时它已经在那儿了。无论如何,对于我尝试导入的目标MySQL服务器版本来说,这似乎并不重要。错误总是一样。看起来也没关系,SQL代码的第一行是什么,因为当我删除顶部的一些代码时,下一部分可执行代码也会发生相同的错误。

答案 1 :(得分:1)

SET SQL_MODE =“NO_AUTO_VALUE_ON_ZERO”;当使用不同版本的mysql时会发生。当您从一台服务器转移到另一台服务器时,您应该记住在新环境中使用的数据库版本,尤其是mysql。

修复方法如下。只需从数据库中删除以下行,即可完成

SET SQL_MODE =“NO_AUTO_VALUE_ON_ZERO”;

访问https://www.drupal.org/node/164401

答案 2 :(得分:0)

默认情况下,

NO_AUTO_VALUE_ON_ZERO已关闭。实际上它在服务器级别启用非常,并且通常仅在SQL转储中使用。

NO_AUTO_VALUE_ON_ZERO仅影响插入期间发生的情况。关闭模式不会影响表中已有的行。

问题:我导入的mySQL版本较旧 - 我导出的mySQLversion为5.0,导入的mySQL版本为3.23.56所以在phpMyAdmin的导出选项卡中我选择了来自" SQL兼容模式"下拉列表" MYSQL323"然后进口工作成功。

答案 3 :(得分:0)

在这种情况下,问题似乎是因为您的MYSQL版本。正如我在您的问题下面的评论中问到的那样,您似乎正在使用WAMPSERVER。因此,由于您的WAMPSERVER版本,它的MYSQL版本不同。

您尝试导入的服务器可能具有较新版本的MYSQL。因此,您只需更新WAMP,然后就更新了MYSQL版本。然后尝试将它们导入服务器。所以你可以解决这个问题。

希望有所帮助

始终尝试更新

答案 4 :(得分:0)

很可能是使用文本编辑器编辑了导入文件,该编辑器在保存时离散地添加了 BOM(字节顺序标记)。例如,Windows 的记事本就是这样做的,而且由于您使用的是 Windows,因此这种情况很可能发生。

解决办法: 获取专业的文本编辑器(PSPad、Notepad++ 等,但不是 Windows 记事本)或十六进制编辑器,检查并删除前 3 个字节(HEX:EF BB BF),保存没有这些 BOM 字节的文件 - 导入器应该没有问题没有了。

背景: BOM 愚弄了进口商,第一个 - 被吃掉了,进口商不再承认第一个评论。 Wikipedia about BOM

Similar question here