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

我正在将一个相当简单的表移植到我的实时数据库服务器上,当我尝试创建一个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)

3 years ago

虽然数据库名称中可能包含短划线( - ),但它会阻止MariaDB(以及因此MySQL)将引擎设置为InnoDB ...虽然这最多只是半答案,因为我在尝试导入整个数据库时回到系统后,首先会创建其他表而不会出现问题 . 不幸的是,这个问题现在正在逼迫我,我没有时间开始一个全新的数据库名称方案政策 . 现在我正在改变该特定数据库的引擎以改为使用MyISAM .

从一般故障排除尝试:

SHOW ENGINES;

...如果InnoDB显然没有安装,那么试试这个:

INSTALL PLUGIN innodb SONAME 'ha_innodb.so';