MySQL8.0连接时出现 'caching_sha2_password' is not supported.

这是MySQL8.0一个登录验证的问题。

第一步 初始化配置

如果已经初始化了,就直接跳过第一步

你需要知道的是:MySQL安装的路径。我的路径是:G:\mysql-8.0.11-winx64

在C:\Windows\System32路径下找到cmd.exe,右键以管理员身份运行,并切换到mysql-8.0.11-winx64中。

输入命令初始化data目录:

mysqld --initialize --console

会出现一段内容,找到内容中root@localhost: 它后面就是登录数据库的初始密码,一定要记下来

再输入命令初始化mysql服务

mysqld --install

然后输入命令启动mysql

net start mysql

如果已经启动了,他会提示你服务已经启动。

如果提示拒绝访问,那你肯定没有以管理员身份运行cmd。在C:\Windows\System32路径下找到cmd.exe,右键以管理员身份运行。继续上步操作。

接下来,登录到数据库

mysql -u root -p

密码:输入就是刚才记下来的,

登陆成功后接着更改密码,输入

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';  

这以上只是确保不会出现其他的问题,还不能解决密码验证的问题。

 

第二步 修改MySQL的登录验证配置

cmd连接mysql

mysql -u root -p

修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

更新一下用户的密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

刷新权限

FLUSH PRIVILEGES;

重置下密码(123456789这里是你要设置的密码)

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456789';

完成以后,试着重新连接mysql数据库,如果还没有成功,继续往下走:

 

第三步 根目录增加配置文件

在mysql-8.0.11-winx64这个目录下,新建my.ini文件,文件内容如下,记得保存:

[mysqld]

# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

 接下来需要重启mysql服务。

先停止mysql服务,

net stop mysql

如果提示拒绝访问,那你肯定没有以管理员身份运行cmd。在C:\Windows\System32路径下找到cmd.exe,右键以管理员身份运行。继续上步操作。

已停止成功后,继续输入命令启动mysql

net start mysql

查看是不是可以正常启动

如果无法启动,就是那个my.ini文件的问题,尝试只保留文件中的一部分

[mysqld]

# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

继续启动mysql。

启动成功后,就说明修改配置文件成功,尝试去连接数据库,应该就成功了

 

posted @ 2018-11-24 19:16  咔嚓咔嚓卡擦  阅读(3523)  评论(0编辑  收藏  举报