[英]Can't create InnoDB table (error -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 存储文件的文件夹,看看那里是否有垃圾,什么也没有。
有任何想法吗?
虽然数据库名称中可能有一个破折号 (-),但它会阻止 MariaDB(以及 MySQL)将引擎设置为 InnoDB ......尽管这充其量只是一个半答案,因为我正在尝试导入整个数据库回到系统中,首先创建的其他表没有问题。 不幸的是,这个问题现在迫使我自己,我没有时间启动一个全新的数据库名称方案策略。 现在,我正在更改该特定数据库的引擎以改用 MyISAM。
从一般故障排除尝试:
SHOW ENGINES;
...如果 InnoDB 显然没有安装,那么试试这个:
INSTALL PLUGIN innodb SONAME 'ha_innodb.so';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.