【问题标题】:Can't create InnoDB table (error -1)无法创建 InnoDB 表(错误 -1)
【发布时间】:2011-09-29 23:03:12
【问题描述】:

我正在将一个相当简单的表移植到我的实时数据库服务器,当我尝试创建 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存储文件的文件夹,看看那里是否有垃圾,什么都没有。

有什么想法吗?

【问题讨论】:

  • 对我来说很好。也许显示您的环境数据库?您是否在新数据库中尝试过此操作?
  • Found SHOW ENGINES; 将显示是否支持引擎,尽管它适合我,我现在正试图解决这个问题。你有没有想过罗德里戈? INSTALL PLUGIN innodb SONAME 'ha_innodb.so'; 也不适合我。

标签: mysql innodb myisam


【解决方案1】:

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

常规故障排除尝试:

SHOW ENGINES;

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

INSTALL PLUGIN innodb SONAME 'ha_innodb.so';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2021-11-30
    • 2018-03-18
    • 2018-02-01
    • 2015-06-11
    • 2015-10-27
    • 2012-10-15
    相关资源
    最近更新 更多