mysql - InnoDB 在导入时转换为 MyISAM

标签 mysql database innodb myisam my.cnf

我正在 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/

相关文章:

java - 为什么几乎所有的数据库都没有实现行缓存?

mysql - 错误1005(HY000): Can't create table 'shrewd_db.alert_disable_register' (errno: 150)

mysql - Sequelize findOrCreate 不排除排除数组中定义的属性

mysql - SSH session 关闭时的 liquibase 行为

php - 获取 Eloquent 模型实例的主键

mysql - Full Outer Join "with"表不工作

sql - 具有可变属性的项目的数据库设计?

database - 在 PostgreSQL 中创建多列索引

java - JDBC - 如何在 MySQL 数据库中插入和检索泰米尔语值

mysql - 服务器每隔几分钟就会关闭一次,并且 MYSQL 守护程序无法启动