MySQL Error number: MY-010314; Symbol: ER_AUTHCACHE_ROLE_TABLES_DODGY; SQLSTATE: HY000

文档解释

Error number: MY-010314; Symbol: ER_AUTHCACHE_ROLE_TABLES_DODGY; SQLSTATE: HY000

Message: Could not load mysql.role_edges and mysql.default_roles tables. ACL DDLs will not work unless mysql_upgrade is executed.

错误说明

MY-010314 ; ER_AUTHCACHE_ROLE_TABLES_DODGY; 这个错误一般出现在MySQL数据库的权限控制过程中, 它的官方定义为: ER_AUTHCACHE_ROLE_TABLES_DODGY 在执行flush_authentication_cache时,发现要加载的角色表列表无法用于缓存。

常见案例

ER_AUTHCACHE_ROLE_TABLES_DODGY一般是指用户在应用MySQL授权系统时,一般发生在定义多个GRANT TABLE(称为授权缓存)时才会出现此错误,可能是由于GRANT TABLE中的权限声明不正确。

解决方法

首先,在不影响MySQL数据库正常工作的前提下,尝试完整地应用授权系统,例如检查GRANT TABLES(授权缓存表)中的权限声明是否正确,然后在每次修改授权缓存之后执行一个flush_authentication_cache来清除授权缓存的错误。其次,可以尝试重新启动MySQL服务,如重新启动后发现ER_AUTHCACHE_ROLE_TABLES_DODGY错误仍存在,则建议检查MySQL数据库权限设置以及其他相关授权参数,以确保授权缓存表是否正确设置,并重新上载授权缓存表,最终解决此类错误。

你可能感兴趣的