我正在从mysqldump文件恢复所有数据库,并收到以下错误:
ERROR 1005 (HY000) at line 156: Can't create table 'db1.testtable' (errno: 121)
由于我的SQL是从mysqldump实用程序创建的,所以我很困惑SQL代码中出现了错误!
我的dump.sql中的相关行是:
CREATE TABLE `testtable` (
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`emailaddress` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
谢谢,吉姆
答案 0 :(得分:8)
errno 121表示重复键错误。可能该表已经存在于InnoDB内部数据字典中,尽管该表的.frm文件已被删除。这是在表创建中获取errno 121的最常见原因。另一个可能的原因是外键约束名称中的名称冲突。约束名称在数据库中必须是唯一的,如表名称。
InnoDB在.err日志中打印什么?