mysql8 caching-s_Mysql8安装及caching_sha2_password报错解决

一、下载MySQL

首先,去数据库的官网http://www.mysql.com下载MySQL。点击downloads,community,选择MySQL Community Server。找到Recommended Download,然后点击go to download page。

如下图:

b396acfbe1459bdb3f35b7f543affe8f.png

点击download进入下载页面选择No thanks, just start my download就可以开始下载了,当然你要是想注册也可以注册一下。

二、安装MySQL

打开刚刚下载好的安装包,开始安装MySQL。选择 I accept 然后点击next进入下一步。选择Developer Default,然后点击next进入下一步。检查安装条件,直接点击next进入下一步就可以了。然后直接点击execute执行就可以了,执行完后点击next进入下一步。继续点击next进入下一步。选择第一个然后点击next进入下一步。

设置root密码然后点击next进入下一步。

windows server name可以设置mysql服务名称,如果想安装多版本可以为每个服务取不同的名字即可实现多版本共存了。

一直点击next到下一步。最后点击execute执行。点击next。最后点击finish。

一路点击next,并check你的root密码,MySQL就成功在你的电脑上安装完成了。

安装完成后进入MySQL的安装目录,进入MySQL Sever,其目录下的文件如下:

a7b3d4581e24b2d3a2e7361bc14c7000.png

bin目录下保存了MySQL常用的命令工具以及管理工具、data目录是MySQL默认用来保存数据文件以及日志文件的地方(我的因刚安装还没有data文件夹)、docs目录下是MySQL的帮助文档、include目录和lib目录是MySQL所依赖的头文件以及库文件、share目录下保存目录文件以及日志文件。

进入bin目录,按住shift键然后点击鼠标右键可以选择在该目录下打开命令窗口,或者在地址栏中输入cmd进入命令窗口。输入mysql -u root -p后回车,然后会提示输入密码,输入密码后就会进入MySQL的操作管理界面。

输入show databases;(注意末尾有分号)可以查看当前MySQL中的数据库列表,输入use test;可以进入test数据库(前提是要有此数据库),输入show tables可以查看test数据库中的所有表,输入quit可以退出MySQL的操作管理界面。

e2d79853e3d3b172bc1548e410c839f7.png

三、如果创建mysql的数据库连接报如下错误:

2059 - Authentication plugin 'caching_sha2_password' cannot be loaded:

fa70d69f04ca6000090357282bbf00fe.png

linux中显示为

error 2059: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

从错误信息可知caching_sha2_password不能加载。

show variables like 'default_authentication_plugin';

以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。

解决办法:

登录root用户,执行命令:

use mysql;

select user,plugin from user where user='root';

或者

show variables like 'default_authentication_plugin';

可以看到当前用户的加密方式为caching_sha2_password

执行命令

alter user 'root'@'%' identified with mysql_native_password by 'Admin@123';

或者

alter user 'root'@‘localhost' identified with mysql_native_password by 'Admin@123';

将用户的加密方式改为mysql_native_password。

执行命令flush privileges使权限配置项立即生效。

flush privileges

再次尝试连接Mysql,连接成功。

附:兼容新老版本的认证方式

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; #修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; #更新一下用户的密码 FLUSH PRIVILEGES; #刷新权限

#创建新的用户:

create user root@'%' identified WITH mysql_native_password BY 'root';

grant all privileges on *.* to root@'%' with grant option;

flush privileges;

#在MySQL8.0创建用户并授权的语句则不被支持:

mysql> grant all privileges on *.* to root@'%' identified by 'root' with grant option;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'root' with grant option' at line 1

mysql>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值