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

Rod*_*igo 5 mysql myisam innodb

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

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

有任何想法吗?

Joh*_*ohn 0

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

一般故障排除尝试:

SHOW ENGINES;
Run Code Online (Sandbox Code Playgroud)

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

INSTALL PLUGIN innodb SONAME 'ha_innodb.so';
Run Code Online (Sandbox Code Playgroud)