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数据库权限设置以及其他相关授权参数,以确保授权缓存表是否正确设置,并重新上载授权缓存表,最终解决此类错误。