1045: Access denied for user (using password: YES/NO)(用户访问被拒绝(使用密码:YES/NO))
MySQL含义
针对用户名、密码或连接来源主机的认证失败;登录被拒绝。
原因
密码错误、用户在其连接来源主机上没有权限(user@host)、账户不存在、认证插件不匹配(caching_sha2_password 与 mysql_native_password),或连接字符串中的凭据已过时。
解决方法
检查用户与主机是否匹配:SELECT user, host, plugin FROM mysql.user。为正确的主机授权(如 'app_user'@'%')。重置密码:ALTER USER 'app_user'@'host' IDENTIFIED BY 'new_password';(ALTER USER/GRANT 立即生效;只有在用 DML 直接修改授权表时才需要 FLUSH PRIVILEGES)。如果看到 'using password: NO',说明客户端根本没有发送密码。对于插件不匹配,检查认证插件:MySQL 8.4 默认禁用 mysql_native_password 插件(仅在 --mysql-native-password=ON 时加载);使用该插件的旧账户和旧客户端无法连接。用 ALTER USER ... IDENTIFIED WITH caching_sha2_password BY '...'; 迁移账户,并升级客户端驱动。