【Linux-MySQL8.0以上】需要做的开放IP权限和更改加密策略(报错:Client does not support authentication protocol )

原因: MySQL8.0以上版本,远程访问还需要开启所有IP可以访问的权限

我遇到的报错:
在这里插入图片描述

正文:

· 1.首先运行MySQL :

docker run -p 3306:3306  --name mysqlLinux(随便) -e MYSQL_ROOT_PASSWORD=XXX(对应密码) -d mysql

· 2.进入MySQL:

docker exec -it mysql bash

·3. 接下我以命令合集表述(一些命令我进行了注释解释含义,以//XXX格式,注释内容不要放Linux执行)

//查看
ls
//进入bin
cd bin
//进入MySQL监视器
mysql -u root -p
//要求输入密码,输入密码即可
XX (你的对应密码)
//显示所有数据库,正确相应一个图形化的表格
show databases;
//下面这句无分号结尾
use mysql
//SQL语句字面含义,正确相应为一个图形化表格
select host,user,plugin from user;
//上句产生的图形化表格若有host:% ,user root 则不需要执行下面的句子,否则执行,执行结果就是使得有这么一条数据
//这里表示开启远程登录(%为任意,即任何host都可以通过root登录,即开启远程)
update user set host = ‘%’ where user = ‘root’;
//最关键的最后一步;更改加密策略

ALTER USER 'root(连接名)'@'%' IDENTIFIED WITH mysql_native_password BY 'XXX(你设置的密码)'; 

//注意上面这条语句中(连接名)(你设置的密码) 是解释,实际运行命令取出这些例如下面将给出一条正确输入样式:
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

·4 可能需要注意的事项(我没遇到如下问题):

我到这里通过Navicat已经可以正常连接了,这里列举几个还是无法远程连接的可能原因:
·4.1无法正常连接是否是没有刷新权限的问题(我没遇到,只是看到有人会使用如下语句)
解决方法:在上述流程后面追加如下语句刷新权限:
FLUSH PRIVILEGES;
·4.2 是否是因为Linux防火墙问题(我没遇到)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值