今天开发上线新系统反馈数据库连接有问题。自己分别在命令行下及navicat进行连接发现,发现root用户密码在命令行下可以正常连接,但是新建立的子用户连接不上。于是就换成管理员密码。立即就连接上了。看来是密码设置问题。随即就换了密码就可以了。
切记两个密码策略不一样,一定要更按照规则设置密码,很有可能是不符合规则导致连接不上。从另一个加密码规则切换到另一个加密码规则密码就不好使了。
但是用navicat连接不上,Client does not support authentication protocol requested by server,必须把密码插件必须改为:mysql_native_password。
解决方案
USE mysql;
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
FLUSH PRIVILEGES;
也可以参数my.cnf中加上
default_authentication_plugin=mysql_native_password
查看当前用户使用的密码验证插件
mysql> show variables like '%auth%';
查看 MySQL8 支持的密码验证插件
mysql> show plugins;
修改系统默认的密码验证插件配置参数方式 default-authentication-plugin
设置默认密码验证插件
default-authentication-plugin=caching_sha2_password
启动参数方式 --default-authentication-plugin C:Usersjie>D:chengxuMySQLmysql-8.0.12-winx64inmysqld --default-authentication-plugin=mysql_native_password
查看用户密码插件 mysql> select host, user, plugin from mysql.user;