今天无趣就研究了一下mysql8的特性,于是在自己的服务器下安装了mysql8,由于是在docker下安装的,所以步骤会比较短, 第一步: docker pull mysql:8.0 表示pull tag为mysql8.0下的镜像 第二步:docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql8 -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql:8.0 表示运行上一步下载的image镜像,端口为3306,root账户的密码是root 并且配置挂载到linux下的/data/mysql/data文件夹下 * docker教程见

一切安装都很顺利,在我使用navicat连接服务器下的mysql时,遇到了从未遇到的问题,连接期间失败并报了

Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image

于是在网上翻阅资料,得出了原因 :密码加密方式【caching_sha2_password】,客户端不支持。

file

原来密码是经过caching_sha2_password插件进行加密过的,翻阅了mysql官文 file 发现如果客户端要连接mysql,一个方法是必须要安装 caching_sha2_password 这个插件,而另外一个方法是通过命令行将root的密码修改为mysql原始的加密方式,即mysqmysql_native_password ,第三个方法是在mysql.ini下配置默认的加密方式,在my.ini文件下修改默认加密方式(8.0之后才是caching_sha2_password,需要修改为mysql_native_password)

default_authentication_plugin=mysql_native_password 

贴上mysql docker安装

最后附上mysql8.0 官方文档