Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)

我的踩坑之旅

        • 1、安装Mysql,
        • 2、mysql扯拐,报错:ERROR1698(28000):Access denied for user root@localhost
        • 3、修改密码:
        • 4、问题解决!!!!!!!!!!!!!!!!

我的版本号::Ubuntu 18.04 MySQL 5.7.25


  • 前言:写一下我艰辛的MySQL安装之路,踩坑达人来了。只有亲历了这么多的艰辛,才知道最后成功的喜悦!必须记载一下
    ——重置步骤:重置密码第一步需要先进入mysql,第二步输入命令重置密码,第三步退出重启服务

1、安装Mysql,

因为我是在Ubuntu安装mysql,前面安装什么的就不赘述了,在我另一篇博客里有详细命令和步骤,感兴趣的小伙伴可以看一下>Ubuntu安装Mysql,Nginx,redis<


2、mysql扯拐,报错:ERROR1698(28000):Access denied for user root@localhost

  • 这个1698卡了我一万年:
    原因:是在安装配置mysql的时候没有配置密码。这就需要我们重置密码。但重置密码就需要先进入mysql,这里推荐两种方法:
  • 方法一: 在配置文件 [mysqld] 项中添加语句 skip-grant-tables,跳过密码验证,直接进入mysql。
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf      

Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第1张图片

  • 保存退出,重启mysql服务。
    service mysql restart           //重启使配置生效
    mysql -u root -p                //进入mysql,回车不用输入密码,直接回车
  • 进入mysql
    Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第2张图片
    方法一也可能用不了,重启服务的时候可能出现以下错误,如果不行那我们就尝试一下第二种方法吧。在这里插入图片描述

  • 方法二: 使用默认账号登录,注:这个用户只有Debian或Ubuntu服务器才有。
  • 进入/etc/mysql/目录,并用root权限打开debian.cnf文件
    cd /etc/mysql                      // 进入mysql子目录
    sudo vim debian.cnf            //查看默认账号密码
  • 使用这个文件中的用户名和密码进入mysql
    Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第3张图片
     mysql -u debian-sys-maint -p
  • 然后输入文件中的password值,即可进入mysql。

3、修改密码:

  • 经历这么多坎坷,我们终于进入mysql了,终于可以修改密码了!是这样么?先讲方法再讲坑吧。
    进入以下界面说明你已经成功了三分之一了
    Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第4张图片
  • 依次输入以下语句对密码进行修改:(注:MySQL中每条语句结束需加上分号,不然默认在继续输入,不会执行)
       use mysql;                        //选择数据库
       show fields from user;            //查看配置信息
  • 注:show命令需要安装插件才能使用。
    Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第5张图片
    Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第6张图片
  • 上面的字段对应的就是我们的密码:如果是一样的,接下来我们就来修改密码(修改密码为123456)。(关于这儿其实我还有话要说,最后再说吧)
    update mysql.user set authentication_string=password('123456') where user='root';  

    flush privileges;    //刷新重置

    quit             //退出

Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第7张图片
如果以上的每一步你都没有报错,顺利执行,那你大概可能比较幸运,应该修改成功了

重启服务,然后使用新密码登录,做最后的验证。成败在此一举。

service mysql restart 
mysql -u root -p      // 输入密码,登陆成功
  • 显示以下界面,那么恭喜你修改成功了。
    Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第8张图片

  • 如果还是不幸:ERROR1698(28000):Access denied for user root@localhost熟悉的1698,那么这里并不是你的终点。反正我是走到了这里,那我们从头再来把:
    用你之前成功的方法再次进入mysql :
   use mysql;
   select user,plugin from user;

Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第9张图片
如果显示和我的一样,说明root的密码默认不是mysql的常规密码,我们使用常规命令修改了也没用,我们只需修改即可,如果你也走到这儿,那么我们可能都是厄难毒体。踩坑达人。

update user set authentication_string=password("ln122920"),plugin='mysql_native_password' where user='root';

再次查询:

select user,plugin from user;

结果如下:
Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第10张图片
然后再回到步骤3,进行密码修改。然后就成功了。(哭)这个问题卡了我一天,几乎网上搜集了所有相关博客资料,一把辛酸泪!


4、问题解决!!!!!!!!!!!!!!!!

最后还要说的就是:如果你遇到这个(星星),检查语法无误,试用网上所有修改语句无效,始终报这个错的话,我建议你卸载重装mysql 。这里推荐一个卸载的博客教程。本人亲测好用。卸载无残留。
https://blog.csdn.net/iehadoop/article/details/82961264
Ubuntu中mysql忘记密码重置(Ubuntu安装mysql遇到的坑)_第11张图片

  • 原因我推测是版本或者内部包损坏问题。

当然如果你尝试了以上方法都没用的话,我也建议你卸载重装mysql。一般正常安装不会出这些鸡毛问题的。我也不知道我是为什么会遇到这么多坑。进入mysql不能修改,语法错误,服务启动不了…
参考结合两位大佬的博客:感谢:
https://blog.csdn.net/skh2015java/article/details/80156278
https://www.cnblogs.com/cpl9412290130/p/9583868.html

一步一坑。所有方法本人亲测有效,现在啥东西版本更新都很快,不一定都适用,仅提供一定的思路。若有错误,望指正。谢谢!

你可能感兴趣的:(打Bug升级的程序猿,程序猿必备技能)