mysql如何设置数据库默认引擎_修改default-storage-engine

张开发
2026/4/20 8:12:40 15 分钟阅读

分享文章

mysql如何设置数据库默认引擎_修改default-storage-engine
MySQL 8.0 中 default-storage-engine 配置项已被彻底移除启动时会被忽略并警告实际默认引擎为硬编码的 InnoDB5.7 及以前版本支持但需重启生效且仅影响未显式指定 ENGINE 的 CREATE TABLE。MySQL 8.0 无法通过 default-storage-engine 修改默认引擎该配置项已被移除5.7 及更早版本虽支持但仅对非显式指定 ENGINE 的 CREATE TABLE 生效且重启后才生效。为什么 default-storage-engine 在 MySQL 8.0 不起作用MySQL 8.0 彻底废弃了 default-storage-engine 系统变量改用 default_table_type只读实际默认引擎由数据目录初始化时决定——InnoDB 是硬编码的默认值不可覆盖。试图在配置文件里写 default-storage-engineMyISAM 不会报错但启动时会被忽略SHOW VARIABLES LIKE default_storage_engine 仍返回 InnoDB。常见错误现象mysqld 启动日志里出现警告 [Warning] Ignoring user-supplied value for default-storage-engine建表不加 ENGINE 依然得到 InnoDB 表。MySQL 5.7支持 default-storage-engine但必须写在 [mysqld] 段且需重启 mysqld 才生效MySQL 8.0该参数完全无效官方文档已从配置项列表中删除无论哪个版本它都**不影响 ALTER TABLE、CREATE TEMPORARY TABLE 或 CREATE TABLE ... SELECT**真正能控制新建表引擎的两种方式想让没写 ENGINE 的 CREATE TABLE 语句用 MyISAM或其它引擎只有两个可靠路径方案一推荐显式声明引擎 —— 所有建表语句都带上 ENGINEMyISAM。这是最可控、跨版本兼容的做法方案二仅限 5.7 及以前修改配置 重启 —— 在 my.cnf 的 [mysqld] 下加 default-storage-engineMyISAM然后完整重启 mysqld 进程不是 reload注意SET GLOBAL default_storage_engine MyISAM 在 5.7 中看似成功但只影响当前会话后续的隐式建表且重启后失效8.0 中该语句直接报错 Variable default_storage_engine is a read only variable。 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能

更多文章