当我从 Amazon RDS 创建数据库转储然后尝试将其导入本地时,结果是ERROR 1064 (42000) at line 54
.
第 54 行有如下语句:CREATE TABLE account_emailconfirmation (
用于转储的命令是:mysqldump -u user -h host.rds.amazonaws.com -p --default-character-set=utf8 --result-file=sync.sql database_name
导入使用的命令是:mysql --user=root -p mpl -vv < sync.sql
这是输出(详细程度增加)。
--------------
CREATE TABLE `account_emailconfirmation` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`created` datetime(6) NOT NULL,
`sent` datetime(6) DEFAULT NULL,
`key` varchar(64) NOT NULL,
`email_address_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `key` (`key`),
KEY `acc_email_address_id_5bcf9f503c32d4d8_fk_account_emailaddress_id` (`email_address_id`),
CONSTRAINT `acc_email_address_id_5bcf9f503c32d4d8_fk_account_emailaddress_id` FOREIGN KEY (`email_address_id`) REFERENCES `account_emailaddress` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
--------------
ERROR 1064 (42000) at line 54: 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 '(6) NOT NULL,
`sent` datetime(6) DEFAULT NULL,
`key` varchar(64) NOT NULL,
' at line 3
Bye
问题出在 datetime(6) 上。 MySql 引入了秒小数部分的存储v5.6.4。以前的 mysql 版本无法识别用于指示日期时间中小数秒的语法(即 (6))。
数据是从 mysql v5.6.4 或更高版本导出的,并尝试导入到早期版本中。由于错误消息以 (6) 开头,我相信这就是问题所在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)