在第1行的“■/”附近导入mysqldump文件ERROR 1064(42000)

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

/*!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 

有人请帮助我。

最后我有一个解决方案

我们需要两个选项

  • --default-character-set=utf8 :这确保UTF8用于每个字段
  • --result-file=file.sql :这个选项可以防止转储数据通过可能不使用UTF8的操作系统。 而是将转储数据直接传递给指定的文件。

使用这些新的选项你的转储命令将如下所示:

 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

看起来,输入文件(mysqldumpfile.sql)是以UTF-8编码创建的,所以在.SQL文件中,第一个3字节“在第一行”对于你是不可见的,是字节顺序标记(BOM)序列

所以尝试将默认字符集更改为UTF-8

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

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

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

需要的数据库导入