Error number: MY-010927; Symbol: ER_ACCESS_DENIED_FOR_USER_ACCOUNT_LOCKED; SQLSTATE: HY000
Message: Access denied for user ‘%s’@’%s’. Account is locked.
错误说明 :
MY-010927为MySQL的错误代码,其Symbol为ER_ACCESS_DENIED_FOR_USER_ACCOUNT_LOCKED,SQLSTATE为HY000。该错误表明,MySQL拒绝向指定用户提供访问,因为该用户的账户已被锁定。
常见案例:
这个错误通常会出现在当一个已被锁定的用户试图访问MySQL服务器时。由于该用户的账户已被锁定,数据库服务器拒绝了其访问,并给出此错误。此外,即使用户提供正确的凭证,也无法访问MySQL。
解决方法:
一般来说,如果想要解决此错误,则需要解除此用户的锁定,并重新提供其凭证,以便它能够访问数据库服务器,做到这一点的一种方法是:
1. 以管理员/超级用户的身份登录MySQL数据库系统;
2. 使用以下命令获取所有锁定用户的列表:
$ SELECT * FROM mysql.user WHERE Account_Locked = ‘Y’;
3. 为需要解锁的用户执行以下命令:
$ ALTER USER 'UserName’ PASSWORD EXPIRE NEVER;
$ ALTER USER ‘UserName’ ACCOUNT UNLOCK;
4. 重新提供该用户的凭证以便其可以访问MySQL。
此外,管理员还可以通过提升MySQL安全性来防止此问题的发生,例如使用双验证而不是单验证,它需要用户提供多种不同的凭证才能登录。