Error number: 3523; Symbol: ER_UNKNOWN_AUTHID; SQLSTATE: HY000
Message: Unknown authorization ID `%s`@`%s`
错误说明:
ER_UNKNOWN_AUTHID是MySQL的一种错误,它表示指定的用户名具有无效的身份验证ID。这可能是由于配置错误,用户已过期或用户帐户被删除导致的。即MySQL尝试使用一个不存在的用户或过期的用户名来访问。
最常见的案例之一是当你尝试使用一个不存在的用户名访问MySQL时,可能会发生此错误。例如:当尝试使用 ‘username’ 来访问MySQL服务器时,在MySQL中没有此用户名,就可能会发生它。
解决方法:
1. 确保用户名是正确的– 首先,您应该确保您正在使用正确的用户名。在MySQL数据库中有配置哪些用户可以访问它。您可以在root用户下使用以下SQL语句检查用户帐户:
SELECT user,host FROM mysql.user;
2. 检查用户账户是否过期– 确认用户帐户是有效的是很重要的。您可以检查用户帐户是否有效,并可能需要更新或重新配置它以便让用户继续访问MySQL服务器:
SELECT user,host,password_expired FROM mysql.user;
3. 修改MySQL配置文件– 如果用户帐户上存在任何根本性错误,则可以在MySQL配置文件中修复它。以下是一个以上检查的示例:
# 在MySQL配置文件中查找身份验证策略
#可能会覆盖某些错误的身份验证
[client]
user = username
password = password
default-auth = mysql_native_password
# 启用以上配置后再次尝试连接,看看是否解决错误。
4. 删除无效的用户帐户– 如果用户帐户无效,可以删除它,然后使用以下SQL语句恢复它:
DROP USER username;
CREATE USER username;
SET PASSWORD FOR username = PASSWORD(‘password’);
GRANT ALL ON databasename.* TO username;
这样可以确保用户具有有效的身份验证ID,以便可以与MySQL服务器进行通信。