文档解释
Error number: 3928; Symbol: ER_CLIENT_PRIVILEGE_CHECKS_USER_NEEDS_RPL_APPLIER_PRIV; SQLSTATE: HY000
Message: PRIVILEGE_CHECKS_USER for replication channel ‘%s’ was set to `%s`@`%s`, but this user does not have REPLICATION_APPLIER privilege.
错误说明:
ER_CLIENT_PRIVILEGE_CHECKS_USER_NEEDS_RPL_APPLIER_PRIV是MySQL在检查访问权限时返回的一个错误码,具体意思是MySQL遇到这个错误期望解决方案中位用户拥有REPL_APPLIER权限,而没有找到此用户名称,最终导致MySQL无法正确地为用户提供所需的访问权限。
常见案例
该错误尤其常见于MySQL的复制场景中,当一个客户端想要检测用户拥有权限时,MySQL就会发生ER_CLIENT_PRIVILEGE_CHECKS_USER_NEEDS_RPL_APPLIER_PRIV错误。一般情况下,客户端会给予运行show slave status的REPL_APPLIER权限,以便查看数据的复制状态。如果这一权限不存在,或者它的值与MySQL期望的值不匹配,则MySQL将返回ER_CLIENT_PRIVILEGE_CHECKS_USER_NEEDS_RPL_APPLIER_PRIV错误。
解决方法:
通常,解决 ER_CLIENT_PRIVILEGE_CHECKS_USER_NEEDS_RPL_APPLIER_PRIV错误的方法是给予正确的用户名正确的REPL_APPLIER权限。 在MySQL命令行中,可以使用 GRANT REPLICATION SLAVE ON *.* TO repl_user IDENTIFIED BY ‘repl_password’ 将REPL_APPLIER权限授予指定客户端,例如repl_user。然后,客户端可以使用该用户名和密码进行访问,以查看需要的访问权限。在MySQL面板管理中也可以执行此类的访问权限操作,以便客户端正确地接收REPL_APPLIER权限,并能正确地查看数据复制状态。 也可以考虑更新MySQL实例,以获得最新的bug fix和安全修补程序,这可以显著抑制特定权限检查的错误。