我安装了一个数据库,排序规则看起来是这样的:
如您所见,所有数据库都是utf8mb4,而信息模式则显示为utf8mb3。这给我带来了一些问题,因为我需要使用PRTG监控数据库上的一些复制,而PRTG抱怨utf8mb3没有被.NET所接受。
现在,我知道information_schema是一个视图,而不是一个表,因此我不能仅仅修改表。我不知道utfmb3是从哪里来的
当我跑步时:
从TABLE_NAME、TABLE_COLLATION、TABLE_SCHEMA中选择information_schema.tables;几乎所有东西都会出现utf8mb4_0900_ai_ci,除了一些NULL之外,还有一些utf8mb4_bin到处都是。
如何从信息模式中删除utf8mb3的所有跟踪?
先谢谢大家
发布于 2022-06-03 17:01:12
任何用户都不能更改information_schema。模式本身就像一个视图。因此,修复这个问题必须在MySQL源代码中完成,并包含在随后的版本中。
mysql> alter schema information_schema default character set utf8mb4 ;
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema'
.NET获取与utf8mb3相关的错误的问题已经在这里报告:https://bugs.mysql.com/bug.php?id=107259
我建议您在MySQL bug站点上创建一个帐户,并单击上面的bug的“影响我”按钮。这样做的人越多,他们就越优先致力于解决这个问题。
我还没有尝试过以下解决方案,因为我不是.NET用户,但是根据发布说明,您可能能够在短期内修复这个问题,方法是将其降级到MySQL 8.0.23或更早版本。
这显然是MySQL逐步向utf8mb4迁移的结果。首先,他们将所有对"utf8“的引用更改为"utf8mb3”。然后,他们将旧的名称"utf8“引用更好的实现utf8mb4。
我在MySQL发行说明中看到了以下语句:
我认为最好的解决方案是MySQL完成所有系统表、模式和变量到utf8mb4的迁移。
https://dba.stackexchange.com/questions/312920
复制相似问题