亲爱的小伙伴,是不是你在登录自己的mysql数据库的时候,出现了标题所示的错误的提示呢?不要慌张,不要着急,因为作为一个亲身经历者,不瞒你们说当时我也是慌得一批。不过还好,在查了一堆的资料后,终于将它解决了。接下来我就将我的解决办法分享给大家,希望对当前的你有所帮助,嘻嘻。
1.在你的终端中输入以下指令进入mysql的相关配置目录中
此时,可以通过“ls” 指令查看目录中有哪些文件,如果你看到下图箭头所指的mysqld.cnf文件的话,恭喜你,找到它了。
2.使用vi对mysqld.cnf文件进行编辑,输入以下指令
3.找到箭头所指的 [mysqld]
4.按下 i 指令进入编辑模式,在[mysqld]的下边添加上 skip-grant-tables忽略权限表
5. 先按ESC键退出编辑模式,然后输入 :wq 指令保存并退出
6. 重启mysql服务,输入如下指令
7. 现在就可以免密登录mysql数据库了,输入如下指令,不用输入密码,然后直接按下回车键,你会发现,你的mysql可以免密登录了
接下来将会分为两种情况
情况一:你只是忘记了自己的数据库密码,而导致的登录失败,那么只需要重新设置密码即可。
情况二:你的root用户被删除了,那么就需要从新创建root用户,再为其设置密码。
之前我就是root用户被删除了,然后我一直去修改密码,结果发现根本没有用,最后不经意间查了一下user表才发现里边没有root用户,突然之间才恍然大悟,哈哈!
在你选择解决方案之前,我建议你先查看自己的root用户是否还存在,再进行相关操作
1.依次输入以下指令,查看自己的root用户是否存在
看看你的user表中是否有root用户
情况一:root用户存在
这就说明你只是忘记了你的mysql数据库密码了,那么这时候,就只需要输入以下指令,从新设置你的mysql数据库密码就好了
情况二:root用户不存在
那么,这个时候就需要你从新创建你的root用户,并为其设置密码了
1.创建root用户
可能它会报如下错误,如果不报错,那就直接跳到给root用户赋予权限那一步
那么你可以执行如下语句
然后再次创建用户
如果它还是报错,执行如下代码;如果不报错,那就直接跳到给root用户赋予权限那一步
再次创建用户
结果它没保存,那么创建root用户就成功了!
2.为root用户赋予操作所有表的权限
1.执行如下语句,为root用户赋予操作所有表的权限
2.刷新后退出mysql
3.去取之前在配置文件中添加的 skip-grant-tables,重启mysql服务,即可使用密码登陆成功
1.使用vi编辑器,编辑mysqld.cnf配置文件
2.使用 i 指令进入编辑模式,将添加的skip-grant-tables 删除掉后,保存并退出
按下ESC键退出编辑模式,使用 :wq指令保存并退出
3.重启mysql服务
4.重新登录mysql,此时输入如下指令,然后输入你的密码后,即可成功登录你的mysql数据库了
4. 如果使用navicat连接你的mysql数据库的时候出现2059错误,那么你只需要登录mysql,执行以下指令即可。