MySQL 5.5起默认存储引擎为InnoDB,此前为MyISAM;需通过my.cnf/my.ini的[mysqld]段配置default-storage-engine并重启服务才能永久修改,默认值可用SHOW VARIABLES或SELECT @@default_storage_engine查看。

MySQL 默认存储引擎在不同版本中有所不同,5.5 及之后版本默认为 InnoDB,而 5.5 之前是 MyISAM。修改默认存储引擎需通过配置文件调整,不能仅靠 SQL 命令永久生效。
确认当前默认存储引擎
登录 MySQL 后执行以下命令查看:
SHOW VARIABLES LIKE 'default_storage_engine';
也可用:
SELECT @@default_storage_engine;
修改 my.cnf 或 my.ini 配置文件
这是唯一能永久更改默认引擎的方式。找到 MySQL 的配置文件(Linux 通常为 /etc/my.cnf 或 /etc/mysql/my.cnf;Windows 为 my.ini,位于 MySQL 安装目录下),在 [mysqld] 段落下添加或修改:
default-storage-engine = InnoDB
注意:
- 参数名在新版中推荐用
default-storage-engine(带短横线),旧版也支持default_storage_engine(下划线) - 必须写在
[mysqld]下,写在 [client] 或其他段落无效 - 值不区分大小写,但建议统一用大写如
InnoDB
重启 MySQL 服务使配置生效
保存配置文件后,必须重启 MySQL 才会加载新设置:
- Linux(systemd):
sudo systemctl restart mysqld或sudo service mysql restart - Linux(SysV init):
sudo /etc/init.d/mysqld restart - Windows:在服务管理器中重启 “MySQL” 服务,或运行命令
net stop mysql && net start mysql
重启后重新执行 SHOW VARIABLES LIKE 'default_storage_engine'; 确认是否已更新。
补充说明:建表时指定引擎不影响全局默认
即使设置了默认引擎,创建表时仍可显式指定:
CREATE TABLE t1 (id INT) ENGINE=MyISAM;
这种写法优先级高于全局默认,仅对当前语句生效。若想让所有新表都用某引擎,必须确保全局配置正确且未被建表语句覆盖。










