在第1行'■/'附近导入mysqldump文件ERROR 1064(42000)时

时间:2014-02-13 11:12:39

标签: mysql windows mysqldump

无法在Windows命令行中导入mysqldump.exe创建的以下转储文件

/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `attachment_types` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `DESCRIPTION` varchar(50) DEFAULT NULL,
  `COMMENTS` varchar(256) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `UK_ATTACHMENT_TYPES___DESCRIPTION` (`DESCRIPTION`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

在命令行中导入文件时

mysql --user=root --password=root < mysqldumpfile.sql

抛出错误

ERROR 1064 (42000) near ' ■/ ' at line 1

有人请帮助我。

3 个答案:

答案 0 :(得分:25)

最后我得到了一个解决方案

我们需要两个选项

  • --default-character-set=utf8:这确保每个都使用UTF8 字段
  • --result-file=file.sql:此选项可防止转储数据 从通过操作系统可能没有 使用UTF8。相反,它将转储数据直接传递给文件 指定。

使用这些新选项,您的dump命令将如下所示:

mysqldump -u root -p --default-character-set=utf8 --result-file=database1.backup.sql database1

导入时,您可以选择使用:

mysql --user=root --password=root --default_character_set utf8 < database1.backup.sql

来源:http://nathan.rambeck.org/blog/1-preventing-encoding-issues-mysqldump

答案 1 :(得分:3)

似乎输入文件(mysqldumpfile.sql)是用UTF-8编码创建的,所以.SQL文件中对你不可见的前三个字节“第1行”是byte order mark (BOM) sequence

所以尝试change default character set to UTF-8

mysql --user=root --password=root --default_character_set utf8 < mysqldumpfile.sql

答案 2 :(得分:1)

这是我在Windows上需要的导入命令:

{{1}}

需要导入的数据库