远程连接MySQL错误“plugin caching 您所在的位置:网站首页 sqlyog连接错误2059 远程连接MySQL错误“plugin caching

远程连接MySQL错误“plugin caching

2024-07-04 21:25| 来源: 网络整理| 查看: 265

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

概述

下面的环境不重要,重要的是你的 MySQL可视化工具(以 sqlyog 为例)和 MySQL 服务密码校验规则是否一致,mysql 5.7 默认密码校验规则是 mysql_native_password,MySQL 8.0 时默认为 caching_sha2_password,你可以进入MySQL ,使用 SELECT Host, User, plugin from mysql.user; 查看

一、环境

系统: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版本太旧了, 在这里插入图片描述

三、解决方法

有两种解决办法,一种就是升级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 在这里插入图片描述 SQLyog-13.1.6-0.x64 在这里插入图片描述

第二种 修改身份验证插件

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

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

修改 mysql 密码策略

1. 登录mysql mysql -h localhost -u root -p

注意:MySQL版本更新很快,你可以直接尝试使用ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';该命令修改身份验证插件,如果修改成功,不用执行下面操作(初始化MySQL密码尽量设置复杂一点可以减少很多问题)

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';

如果报密码过期策略问题 在这里插入图片描述

这个是指你设置的密码太简单了,设置复杂一点,特殊字符,字母大小写,数字正常 如:@Admin.951753(如果你是新建用户报上面问题,只能使用此方法,如果创建成功想改简单密码可使用下面方法)

执行下面命令,将密码规则修改简单,不建议

SHOW VARIABLES LIKE 'validate_password%';  # 查看密码策略。 默认 MEDIUM # set global validate_password.length=4;    # 将密码位数设置为 4 set global validate_password.policy=LOW;   # 密码策略修改为LOW,原值为MEDIUM ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;

在这里插入图片描述 详细的MySQL密码复杂度与密码过期策略介绍参考博客 https://www.cnblogs.com/mysqljs/p/14246130.html

3. 查看修改结果 SELECT Host, User, plugin from mysql.user;

至此本地和远程root用户密码策略修改完毕,若想修改其他用户,仿照上面命令设置。 在这里插入图片描述 远程连接测试 在这里插入图片描述 注意你新建用户时 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有