无法创建InnoDB表(错误-1)

时间:2011-07-06 20:29:35

标签: mysql innodb myisam

我正在将一个相当简单的表移植到我的实时数据库服务器上,当我尝试创建一个InnoDB表时,它给了我这个奇怪的错误,表创建是:

CREATE TABLE `cobertura` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `cep` int(8) unsigned zerofill NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `idx_cep` (`cep`)
) ENGINE=InnoDB;

如果我将引擎更改为MyISAM它可以工作,如果我将表名更改为其他名称,它就可以工作。 如果我将表创建为MyISAM并将引擎更改为InnoDB,则会收到错误121。 我试着查看mysql存储文件的文件夹,看看那里是否有垃圾,没有。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

虽然数据库可能在名称中有一个破折号( - ),但它会阻止MariaDB(以及因此MySQL)将引擎设置为InnoDB ......尽管这最多只是一个半答案当我试图将整个数据库导入系统时,其他表首先被创建而没有问题。不幸的是,这个问题现在正在逼迫我,我没有时间开始一个全新的数据库名称方案政策。现在,我正在更改特定数据库的引擎,而不是使用MyISAM。

常规疑难解答尝试:

SHOW ENGINES;

...如果没有安装InnoDB,请尝试以下方法:

INSTALL PLUGIN innodb SONAME 'ha_innodb.so';