我总是以我再次使用的方式将数据库文件导入服务器。但是这次当我想要这样做时,我得到以下错误:
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”
有没有人可以帮我解决这个问题?我总是使用这种方法,但这次我有这个错误。
提前致谢
答案 0 :(得分:3)
我不知道它是否会再帮助某个人,但是我遇到了同样的问题并找到了解决方案。
@afroozhashemzadegani-如您所见,SQL错误消息中的“ NO_AUTO_VALUE_ON_ZERO”字符串后面还有一个附加字符。
@afroozhashemzadegani error message
错误消息中的字符相同:
所以我用十六进制打开了它:
当我删除此人时,一切正常。老实说,我不知道它来自哪里,因为导出数据库时它已经在那儿了。无论如何,对于我尝试导入的目标MySQL服务器版本来说,这似乎并不重要。错误总是一样。看起来也没关系,SQL代码的第一行是什么,因为当我删除顶部的一些代码时,下一部分可执行代码也会发生相同的错误。
答案 1 :(得分:1)
SET SQL_MODE =“NO_AUTO_VALUE_ON_ZERO”;当使用不同版本的mysql时会发生。当您从一台服务器转移到另一台服务器时,您应该记住在新环境中使用的数据库版本,尤其是mysql。
修复方法如下。只需从数据库中删除以下行,即可完成
SET SQL_MODE =“NO_AUTO_VALUE_ON_ZERO”;
答案 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