我正在 CentOS 6.5 下运行 MySQL 5.1 服务器。今天导入 SQL 文件时,所有表都是在 MyISAM 下创建的,即使它们声明为使用 InnoDB 引擎。
例如,我在 .sql 文件上声明了一个表,如下所示:
CREATE TABLE `customer` (
`customer_id` int(11) NOT NULL AUTO_INCREMENT,
`customer_no` varchar(20) DEFAULT NULL,
`company_name` varchar(50) DEFAULT NULL,
[....]
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
当使用以下方式导入 .sql 文件时:
mysql -u <username> -p < new_db.sql
客户表是使用 MyISAM 表创建的。这怎么可能?
为了解决这个问题,我在 MySQL 配置中添加了默认引擎为 InnoDB 并重新启动,但是,由于表引擎被声明为 InnoDB,难道不应该使用该声明的引擎而不是默认引擎来加载它吗?
最佳答案
MySQL 5.1 有一些问题。我更喜欢更新它。
另一种方法是在 my.cnf 中禁用不同的 InnoDB 设置,直到 innoDB 运行。
show engine innodb status
使用此命令您可以检查当前状态。每次更改后不要忘记重新启动 mysql。
关于mysql - InnoDB 在导入时转换为 MyISAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27952723/