远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法

文章目录

      • 一、环境
      • 二、问题描述
      • 三、解决方法
        • 第一种 升级SQLyog
        • 第二种 修改身份验证插件
        • 1. 登录mysql
        • 2. 进入mysql依次执行如下命令
        • 3. 查看修改结果

一、环境

系统:centos8
docker:18.09.1
mysql : least >= 8.0.20
sqlyog: 12.0.8-0

二、问题描述

今天试了一下在docker容器安装mysql,结果远程连接报错

远程连接docker 下的MySQL错误如下,即 无法加载插件缓存sha2密码,在MySQL 8.0中,caching_sha2_password是默认的身份验证插件,而不是mysql_native_password,服务器可以正常连接,本地cmd窗口 mysql -h xx.xx.xx.xx -P 33066 -u root -p 123456 可以正常连接,所以我猜测是我的sqlyog版本太旧了,
远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法_第1张图片

三、解决方法

有两种解决办法,一种就是升级sqlyog,一种是修改mysql默认身份验证插件,

第一种 升级SQLyog

我原来的版本为 SQLyog-12.0.8-0.x64 默认身份验证与mysql8.0以上不符,
SQLyog-13.1.6-0.x64 默认支持mysql8.0以上身份验证
链接: https://pan.baidu.com/s/1PnxSc_5q_pBt74HiyrMZMA.
提取码: gu95
SQLyog-12.0.8-0.x64
远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法_第2张图片
SQLyog-13.1.6-0.x64
远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法_第3张图片

第二种 修改身份验证插件

如果你也是docker mysql错误,使用以下命令进入mysql容器,否则跳过下面两行命令直接进入修改MySQL密码策略

# 运行mysql, -d 守护线程保持后台运行
# -p 端口映射,如果你用的阿里云服务器,需要开放安全组(即端口号,自行设置,我的是33066) 
# -e 登录密码 
# --name 为镜像重命名,不然系统会随机生成,重命名在你重启关闭删除直接使用名字会方便很多
docker run -d --restart=unless-stopped -p 33066:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql
# 进入容器
docker exec -it mysql /bin/bash

修改 mysql 密码策略

1. 登录mysql

mysql -h localhost -u root -p 

2. 进入mysql依次执行如下命令

此步骤为修改密码策略核心,其他部分可以了解了解
如果你需要使用远程登录,将localhost 改为%,下面的‘123456’使用你自己的密码

# 本地
# 修改加密规则(非必须)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; 
# 更新用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; 
# 刷新权限
FLUSH PRIVILEGES;
# 重置密码(==非必须==ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

# 远程
# 修改加密规则(非必须)
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; 
# 更新用户的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新权限
FLUSH PRIVILEGES;
# 重置密码(==非必须==ALTER USER 'root'@'%' IDENTIFIED BY '123456';

3. 查看修改结果

SELECT Host, User, plugin from mysql.user;

至此本地和远程root用户密码策略修改完毕,若想修改其他用户,仿照上面命令设置。
远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法_第4张图片
远程连接测试
远程连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法_第5张图片

你可能感兴趣的:(docker,mysql,docker,centos)