gpt4 book ai didi

mysql - 如何将 MAIN mysql 数据库从 MyIsam 转换为 InnoDB

转载 作者:行者123 更新时间:2023-11-29 06:38:43 25 4
gpt4 key购买 nike

我正在尝试管理 mysql 组复制,在操作用户和授权时我注意到一个问题。主mysql数据库中的10个主mysql表是MyIsam。因此,我无法添加数据库或用户权限,因为它们会失败并且不会复制。 主-主组复制需要 InnoDB 的一切。

ALTER TABLE 在常规自定义数据库/表上工作正常,但如何在主 mysql 数据库上修复此问题?

我尝试了这个,但都失败了:

ALTER TABLE mysql.db ENGINE = InnoDB;
ALTER TABLE mysql.tables_priv ENGINE = InnoDB;
ALTER TABLE mysql.user ENGINE = InnoDB;

错误:错误 1726 (HY000):存储引擎“InnoDB”不支持系统表。

运行 CREATE USER 时出现另一个错误...

[错误]插件 group_replication 报告:“表数据库不使用 InnoDB 存储引擎。这与组复制不兼容'

错误 3098 (HY000):该表不符合外部插件 group_replication 的要求。

服务器版本:5.7.23-log MySQL 社区服务器

最佳答案

不要更改系统表的引擎

MySQL 尚未对代码进行足够的更改,以允许 mysql.* 成为 MyISAM 以外的任何内容。 MySQL 8.0 做出了改变,将表(“数据字典”)转变为 InnoDB 表,具有完全不同的结构和功能。

既然您现在是 5.7.23,那么您距 8.0.xx 仅一步之遥。考虑升级。

复制适用于 MyISAM 表,集群复制则不行——Galera 和 InnoDB Cluster 以其他方式处理这些系统 MyISAM 表。请参阅有关 GRANTCREATE USER 等发生的情况的文档。不要使用 UPDATEINSERT 进行操作与登录相关的表。

(这个问题的作者似乎通过卸载插件解决了这个问题。)

关于mysql - 如何将 MAIN mysql 数据库从 MyIsam 转换为 InnoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52615806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com