首页 > 解决方案 > 使用 mydumper 时出错,因为移动到 mysql8 是由用于新行的字符 `\x0A` 引起的

问题描述

我收到一个错误,这似乎与在导入使用创建的备份期间未解释的换行符有关mydumper

我尝试了以下方法:

ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"size" (\x0A  "id" int NOT NULL AUTO_INCREMENT,\x0A  "name" varchar(255) NOT NUL' at line 1

我使用时文件看起来很正常cat

$ cat console.size-schema.sql 
/*!40101 SET NAMES binary*/;
/*!40014 SET FOREIGN_KEY_CHECKS=0*/;

/*!40103 SET TIME_ZONE='+00:00' */;
CREATE TABLE "size" (
  "id" int NOT NULL AUTO_INCREMENT,
  "name" varchar(255) NOT NULL,
  "label" varchar(255) DEFAULT NULL,
  "width" int DEFAULT NULL,
  "height" int DEFAULT NULL,
  "depth" int DEFAULT NULL,
  "deleted_at" int DEFAULT NULL,
  "created_at" int DEFAULT NULL,
  "updated_at" int DEFAULT NULL,
  PRIMARY KEY ("id")
) ENGINE=InnoDB AUTO_INCREMENT=522 DEFAULT CHARSET=utf8;

标签: mysql-8.0

解决方案


mysql 仅在 ANSI 模式下使用 " 进行转义,默认情况下它使用反引号

如何转义用作列名的保留字?MySQL/创建表

我个人的偏好是在任何地方都使用反勾号,因为此设置被广泛使用,从而更容易通过转储文件导入/导出 mysql


推荐阅读