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

Pav*_*r N 16 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;
Run Code Online (Sandbox Code Playgroud)

在命令行中导入文件时

mysql --user=root --password=root < mysqldumpfile.sql
Run Code Online (Sandbox Code Playgroud)

它抛出错误

ERROR 1064 (42000) near ' ?/ ' at line 1
Run Code Online (Sandbox Code Playgroud)

有人请帮帮我.

Pav*_*r N 29

最后我得到了解决方案

我们需要两种选择

  • --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
Run Code Online (Sandbox Code Playgroud)

导入时您可以选择使用:

mysql --user=root --password=root --default_character_set utf8 < database1.backup.sql
Run Code Online (Sandbox Code Playgroud)

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