首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MariaDB存储引擎更改为默认mysql数据库表的InnoDB : db、host和user

问将MariaDB存储引擎更改为默认mysql数据库表的InnoDB : db、host和user
EN

Stack Overflow用户
提问于 2021-12-08 16:18:24
回答 2查看 905关注 0票数 0

可以通过以下方式更改特定表的存储引擎类型:

ALTER TABLE table_name ENGINE = InnoDB;

这适用于MariaDB/MySQL安装附带的所有表,但db、host和user表除外。它引发一个(泛型)错误:

代码语言:javascript
复制
MariaDB [mysql]> ALTER TABLE db ENGINE = InnoDB;
ERROR 1025 (HY000): Error on rename of './mysql/#sql-149_24b' to './mysql/db' (errno: 168 "Unknown (generic) error from engine")
MariaDB [mysql]> ALTER TABLE host ENGINE = InnoDB;
ERROR 1025 (HY000): Error on rename of './mysql/#sql-149_24b' to './mysql/host' (errno: 168 "Unknown (generic) error from engine")
MariaDB [mysql]> ALTER TABLE user ENGINE = InnoDB;
ERROR 1025 (HY000): Error on rename of './mysql/#sql-149_24b' to './mysql/user' (errno: 168 "Unknown (generic) error from engine")

我可以理解为什么更改正在运行的数据库上的表引擎对于这些特定的表(因为它们保存了db和用户信息)是有问题的。但如何改变这种状况呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-08 16:24:20

你不能改变你的想法

在MariaDB 10.3和之前的版本中,这个表使用MyISAM存储引擎。

为什么不更新

在MariaDB 10.4和更高版本中,mysql.global_priv表已经取代了mysql.user表,mysql.user应该被认为是过时的。

请参阅手册

票数 1
EN

Stack Overflow用户

发布于 2021-12-08 16:28:59

不要尝试更改mysql、information_schema或performance_schema数据库中在MySQL服务器中预定义的表的定义。这些表由服务器软件本身管理,如果您更改这些表,可能会损坏您的服务器。

也不要试图在这些表中使用UPDATE或INSERT行。使用数据定义语言SQL语句。

而且,ALTER TABLE table_name ENGINE = InnoDB;不改变默认的存储引擎。相反,它更改了名为table_name的表的存储引擎。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70278279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档