【问题标题】:ERROR 1064 (42000) while importing .sql file into MySQL将 .sql 文件导入 MySQL 时出现错误 1064 (42000)
【发布时间】:2012-10-25 05:42:07
【问题描述】:

我正在尝试将客户端的数据库转储导入在 Windows Vista 64 位上运行的 MySQL 5.5.27(用于 Win64)。但是,我得到了

第 24 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '*/' 附近使用的正确语法 在第 8 行

我已将转储文件的前几行粘贴在下面:

CREATE DATABASE  IF NOT EXISTS `foobar` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `foobar`;
-- MySQL dump 10.13  Distrib 5.5.16, for osx10.5 (i386)
--
-- Host: localhost    Database: foobar
-- ------------------------------------------------------
-- Server version   5.5.21

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Temporary table structure for view `reference`
--

CREATE TABLE `reference` (
  `xyz` varchar(50),
  `ABC` varchar(50),
  `asdf` varchar(50),
  `abcd` varchar(7),
  `Axe` varchar(255),
  `Age` varchar(255)
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;

【问题讨论】:

  • 脚本不完整。看看最后两行。
  • 你指的是 MyISAM 之后的 */ 吗?这让我感到困惑,但我是 SQL 本身的新手,所以认为它对有经验的人可能有意义。这是否意味着有人在发送之前手动修改了转储?这个提取是从转储文件的开头,我没有删除开头的任何行。
  • 看来这是注释代码的开头。

标签: mysql import mysqldump


【解决方案1】:

尝试这样改脚本-

...
CREATE TABLE `reference` (
  `xyz` varchar(50),
  `ABC` varchar(50),
  `asdf` varchar(50),
  `abcd` varchar(7),
  `Axe` varchar(255),
  `Age` varchar(255)
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;*/

或者只是删除那部分 -

...
CREATE TABLE `reference` (
  `xyz` varchar(50),
  `ABC` varchar(50),
  `asdf` varchar(50),
  `abcd` varchar(7),
  `Axe` varchar(255),
  `Age` varchar(255)
);

【讨论】:

  • 我尝试了这两种选择,但都给出了与问题相同的错误。为什么你认为这是注释代码的开始? */ 是注释终止符,不是吗?顺便感谢您尝试解决方案。
  • 哦,是的;它是 '*/'。所以这不是评论的开始。但是第二个 CRETE TABLE 正在工作。
猜你喜欢
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 2011-12-06
  • 2014-07-05
  • 1970-01-01
  • 2018-10-02
相关资源
最近更新 更多