如何绕过mysql密码验证,忘记密码及mysql不慎将自己修改在登录权限之外的解决方法

场景一:mysql不慎将自己修改在登录权限之外

部署mysql到云服务器,对于远程连接的问题,看到有大佬说在mysql的名为’mysql’数据库中直接更改权限,即

use mysql;
update user set Host='%' where User='root';

其中,% 代表任意的客户端,可替换成具体IP地址。
这里我不小心将%换错了地址(即不是本地的,也不是云服务器的),这种情况下,是无法登录数据库的。

场景二:忘记密码

这种情况不用多说,肯定无法登录数据库。

以上两种场景都可以通过绕过mysql密码验证来解决。

绕过mysql密码验证

检查数据库是否是启动状态,如果是启动状态先停止服务

service mysqld stop 

找到my.conf即数据库配置文件:

vi /etc/my.cnf

在my.cnf文件内添加:

skip-grant-tables

如果原来由但是被注释掉了,去掉注释符号#即可。
启动mysql:

service mysqld start

登录mysql:

mysql -uroot -p

提示输入密码,不用管,这时候直接点回车。

修改root账户的密码:

update mysql.user set authentication_string=password('123456') where User="root" ;  
flush privileges;  #刷新系统授权表

这里注意此时密码可以是很简单的组合,但如果是没有配置文件的这句skip-grant-tables,再用上述语句修改密码必须遵守mysql的安全规则,即

必须包含大小写字母、特殊符号、数字,并且长度大于8位

这样最开始说的那两种情况即可得到解决。
ps:这样操作了以后若客户端可能会出现无法连接的情况,请进行授权:

grant all privileges on *.* to root@'%'; #授权root账户远程访问权限  
flush privileges;   #刷新系统授权表 
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值