MySQL Error number: MY-013609; Symbol: ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: MY-013609; Symbol: ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME; SQLSTATE: HY000

Message: Found an entry in the ‘role_edges’ table with empty authorization ID; Skipped

Error MY-013609: ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME

错误说明

ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME错误指示权限缓存中存有一个或多个空角色的角色边,MySQL不考虑它们。这可能是由于角色的空名称导致的,在从MySQL8.0.17版本开始,空角色名称已被禁止。

常见案例

假设一个MySQL实例包含一些名为空字符串的角色,该实例中可能存在一些角色边,即某个角色授予另一个角色的权限。如果被授予的角色名字是空的话,MySQL将报出ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME错误,并忽略这些角色边。

解决方法

要解决ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME错误,首先需要查找是否存在为空的角色。例如,可以使用以下查询来搜索角色:

SELECT username FROM mysql.role_edges WHERE `to`=” OR `from`=”

以查找空角色以及引用它们的角色边。如果查询结果不为空,可以使用DROP ROLE语句将该角色从mysql.role_edges表中删除:

DROP ROLE <role_name>;

随后,应重新验证角色边,以确保该角色边仍然有效,否则可能不会有任何反应。

最后,在下一次请求中,确保没有使用任何空角色,从而避免ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME错误的出现。


数据运维技术 » MySQL Error number: MY-013609; Symbol: ER_AUTHCACHE_ROLE_EDGES_IGNORED_EMPTY_NAME; SQLSTATE: HY000 报错 故障修复 远程处理