MySQL连接VSCode失败:认证方式不符合策略的解决求助
解决MySQL修改用户认证方式时的4058警告问题
问题原因
这个警告是因为MySQL当前的authentication_policy系统变量配置限制了单因素认证的使用,不允许仅用mysql_native_password作为唯一认证方式。
解决步骤
- 查看当前认证策略
执行以下命令查看当前的认证规则:
SHOW VARIABLES LIKE 'authentication_policy';
返回结果会显示当前的策略配置,比如可能是*,sha256_password(表示默认使用sha256_password,且要求多因素认证)。
- 临时调整认证策略(即时生效,重启后失效)
执行以下命令修改全局认证策略,允许mysql_native_password作为单因素认证方式:
SET GLOBAL authentication_policy = '*,mysql_native_password';
注意:执行此命令需要拥有SUPER权限。
- 永久修改认证策略(重启后仍生效)
- Linux系统:编辑MySQL配置文件
/etc/my.cnf或/etc/mysql/my.cnf,在[mysqld]段添加:
authentication_policy = *,mysql_native_password
- Windows系统:编辑
my.ini文件(通常在MySQL安装目录下),同样在[mysqld]段添加上述配置。
修改完成后重启MySQL服务。
- 重新执行用户认证方式修改语句
再次运行你之前的命令:
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'mypassword';
此时应该不会再出现警告,命令执行成功。
- 验证修改结果
执行以下命令确认用户的认证插件已更新:
SELECT user, host, plugin FROM mysql.user WHERE user = 'username';
查看返回的plugin列值,应为mysql_native_password。
内容的提问来源于stack exchange,提问作者Harya Kumuda
相关产品推荐
相关产品推荐

