mysql 报错ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql

今天上班不知道怎么数据库突然连接不上了,使用数据库连接工具一直提示密码不对,然后就陷入了误区。。。

1.数据库提示密码不正确后,开始一直在找密码为什么不对,是不是密码错了,便登录服务器数据库,结果发现不输入密码就可以登录,然后想着赶紧把密码改了,但是执行use mysql的时候报错ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql。

2.报错之后show datebases;发现只有一个数据库,然后又回去看了一下报错信息,才知道登录的账户根本就不是输入的用户。

3.造成这个原因的是因为数据库存在 ' ' 的匿名用户,导致登录的并不是自己的想登录的账户。

4.网上找了很多方法,大部分是关闭数据库然后屏蔽权限再新开一个客户端免密登录,再删除掉空的账户或者修改空账户为root账户登录。

5.只不过操作起来总会遇到问题,像是mysqld_safe --skip-grant-table屏蔽权限这步总会提示各种各样的错误提示,后来几经试探才发现了一种比较容易成功的方法。

6.修改my.cnf文件,在mysqld里面加上skip-grant-table,再重启。就不会出错,然后再免密登录删除匿名账户或者修改匿名账户。

7.操作成功后要记得把my.cnf里面的加的去掉skip-grant-table。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值