这个错误通常出现在使用新的 MySQL 安装或升级到新版本后,因为默认情况下新版本中会启用 auth_socket
插件进行用户认证。如果您以前的 MySQL 安装没有使用该插件,则可能需要进行一些配置更改。
要解决此问题,请按照以下步骤操作:
- 以管理员身份登录到 MySQL。
- 使用以下命令选择
mysql
数据库:
USE mysql;
- 然后,使用以下命令检查当前用户的认证方式:
SELECT user,authentication_string,plugin,host FROM mysql.user;
如果您看到 auth_socket
列在显示的结果中,则表示该用户使用了 auth_socket
认证方式。否则,您可以忽略此步骤并继续执行下一步。
- 使用以下命令更改该用户的认证方式为密码认证(即旧式认证方式):
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中 username
是要更改其认证方式的用户名,而 password
是该用户的密码。
- 最后,刷新权限表格以使更改生效:
FLUSH PRIVILEGES;
现在您应该能够成功登录到 MySQL 数据库了。请注意,在执行此操作之前,请确保您具有足够的权限来进行此类修改,并且谨慎处理以避免不必要的安全风险。