【问题标题】:SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; gives an errorSET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";给出错误
【发布时间】:2016-10-18 02:31:04
【问题描述】:

我的 mysql 数据库有问题。我无法从朋友那里导入数据库。 我需要一些帮助。

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

错误:

语句的意外开头。 (靠近位置 0 的“phpMyAdmin”)
无法识别的语句类型。 (靠近位置 11 的“SQL”)

#1064 - 你的 obok 'phpMyAdmin SQL Dump 语法有问题
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"' w linii 1

【问题讨论】:

  • 你的语法有问题

标签: mysql database import


【解决方案1】:

我遇到了完全相同的问题。显然,您使用的 phpMyAdmin 版本在导入模块中存在错误(在我的情况下,它是打包在 Wamp 3.0.4 中的 phpMyAdmin 4.5.5.1)。更准确地说,它将 cmets(在 -- 之后带有空格的有效语法)解释为 SQL 代码。这是 phpMyAdmin 创建的转储开始时的情况:它通常以

开头
-- phpMyAdmin SQL Dump

这解释了您的错误消息。

phpMyAdmin 4.5.5.1 的导入模块也无法解析转义的单引号(参见https://github.com/phpmyadmin/phpmyadmin/issues/11721)。

这个问题有很多可能的解决方法:

  • 更新 phpMyAdmin
  • 使用其他工具导入数据库转储,例如 MySQL 命令行或 MySQL 工作台
  • 不太可取:在当前版本的 phpMyAdmin 中将 .sql 文件的内容作为查询执行(错误较少)
  • 不太可取:从 .sql 文件中删除所有 cmets

【讨论】:

    【解决方案2】:

    您的语法没有问题,但可能与您的文件有关: 很可能文件已被编辑,文本编辑器(当然是 Windows notepad.exe)太聪明了,在保存时添加了 BOM。

    去掉前3个字节(HEX: EF BB BF),不带它保存文件(使用十六进制编辑器或使用PSPad并切换格式为UNIX),导入器应该没有问题了。

    BOM 欺骗了进口商,第一个 - 被吃掉了,进口商不再承认第一条评论。 Wikipedia about BOM:

    File comparison (w/o BOM)

    【讨论】:

      【解决方案3】:

      windows 记事本和其他编辑器,更改文件的编码。 将其更改为 utf-8 使用“notepad++”打开文件并使用编码菜单,然后选择 UTF-8 现在保存您的文件

      【讨论】:

        猜你喜欢
        • 2023-01-11
        • 1970-01-01
        • 2021-07-31
        • 1970-01-01
        • 2018-03-12
        • 1970-01-01
        • 2013-04-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多