远程Linux连接sqlyog报错1045 Access denied for user ‘root‘@‘192.168.124.1‘(using password: YES)解决方案

首先知道为什么报错:

  • 密码错误: 输入的密码不正确。请检查密码是否输入正确,并确保密码区分大小写。

  • 用户不存在: 用户名 ‘root’ 不存在。请确认该用户是否已创建。

  • 权限不足: 用户 ‘root’ 具有连接权限,但没有访问特定数据库或表的权限。请检查用户权限并根据需要授予适当的权限。

  • 防火墙阻止: 防火墙可能阻止了对 MySQL 服务器的连接。请确保防火墙已正确配置,允许从客户端计算机连接到 MySQL 服务器。

  • 服务器未运行: MySQL 服务器可能未在客户端计算机尝试连接的地址和端口上运行。请确认服务器正在运行并侦听连接。

解决方案:

        跟着下面的流程来一遍:

1.进入Linux虚拟机中的mysql
输入命令:mysql -root -p 登录

2、查看 mysql 初始的密码策略,
输入语句

SHOW VARIABLES LIKE 'validate_password%';

进行查看,效果如下

2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句

set global validate_password_policy=LOW;

进行设值,

3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
输入设值语句

 set global validate_password_length=6;

 进行设值,

4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,最好要和Windows系统MySQL的密码不一样
输入修改语句

 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

可以看到密码策略修改成功

5、赋予权限格式:grant 权限 on 数据库对象 to 用户@IP(或者相应正则)

注:可以赋予select,delete,update,insert,index等权限精确到某一个数据库某一个表。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

flush privileges;
GRANT:赋权命令
ALL PRIVILEGES:当前用户的所有权限
ON:介词
*.*:当前用户对所有数据库和表的相应操作权限
TO:介词
‘root’@’%’:权限赋给root用户,所有ip都能连接
IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456
WITH GRANT OPTION:允许级联赋权

6、再进行一个权限刷新:

 flush privileges;

7、重启虚拟机,然后按照改正的密码登录

即可连接

注意:

 这个流程是更改密码刷新权限的流程,执行下面流程之前先确保防火墙是否阻止了mysql的访问。

如果是防火墙问题,虚拟机中逐步执行下面代码即可,代码中的8080改成3306

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值