如何修改mysql默认存储引擎_mysql存储引擎配置方法

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 mysqldsudo 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;

这种写法优先级高于全局默认,仅对当前语句生效。若想让所有新表都用某引擎,必须确保全局配置正确且未被建表语句覆盖。