【真实有效】Window10系统下mysql-8.0.13-winx64的修改密码

【真实有效】Window10系统下mysql-8.0.13-winx64的修改密码

  忘记密码不可怕,不会修改才尴尬

  在一次小组开发项目中,我们采用的是Git控制版本管理,每次我pull下来的代码,因为我比较懒,所以就是直接覆盖了,但是在数据库连接的配置文件中,每台机器的数据库密码不一定一样,但是你从Git摘下来的东西,就是别人的数据库密码。

  为了统一,自我牺牲,将我的密码修改为他们的一致的密码,结果...............你懂的,

=================================================================================

  想必大家都是按照网上的一些方法修改的,当然有成功的,但是忽略了一点,mysql的版本不一样,修改密码的指令就可能存在小的差异啊!

我就是这样改完直接崩了,登录都登不进去,心态直接爆炸!!!

   此处省略一万字.......

  直奔主题

1. 忘记密码篇(注意:这是成功教学,真实有效)

       (1)首先,请关闭MySql服务

               我觉得你肯定有能力找到这个服务!!!,百度大法好

 (2)

        分析一下,我们没密码,怎么登陆修改密码啊?

       mysql专门为咱们这种大马虎搞了一个机制,可以直接跳过验证,就可以登录。网上也有,但是在我这个8.0版本以上的mysql失效

        你们搜到的是不是 =========在my.ini文件当中的mysqlId下添加skip-grant-table=========

老版本是有用的,但是最新的数据库版本这个命令已失效,会发现命令窗口仍然跳出下一行待输入指令。

        不讲废话,就是上代码

mysqld --console --skip-grant-tables --shared-memory

          打开cmd,一直cd进入你的mysql的安装目录的bin目录下,比如我的:

  D:\program_tools\mysql\mysql-8.0.13-winx64\bin

       请看我操作

 

   继续....................

   复制粘贴我刚才说的核心代码,直接执行。

  结果看不懂没关系,只要出现了如下图的字眼,你就成功了.............................一小半。

 

  continue

    此处命令窗口别动!!!

    另外开一个cmd,直接输入mysql ,走你:

 

输入指令 

use mysql;                                                 //注意有分号哦

 不一样的地方来了......

 

 

===================不想看错误部分可以直接跳过==================

请再次注意我们的mysql是8.0及以上的版本,使用传统的指令,如下图(我给的是图片,防止你们也执行,但是可以自己试一下看错误是不是一样的)。

 

肯定会报错,报错如下:

 瞧见没,就是上面的错,为什么会这样,我查了一下。

         mysql是8.0及以上的版本已经取消了password关键字,也就是说现在对于密码的关键字不是password,所以修改密码它识别不了这个password,自然就抛出语法错误

 所以呢?上新家伙:

mysql_native_password                            //注意这不是命令,这是mysql8.0的一种密码加密规则,具体我也不太懂,

                                                                  //我后面懂了,我再回来补充。

=====================错误部分结束========================

 

回到正轨.......

     输入如下代码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 

     令人头痛弄得是,有时会出现这种情况:

     不过没关系,一旦出现了这种情况,请执行如下语句:

 

flush privileges;                                             //刷新一下权限表

     这个语句是啥意思啊!

================================flush privileges; ==============================
 该命令本质上的作用:是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在”不重启MySQL服务”的情况下直接生效,那么就需要执行这个命令。

    通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

再次粘贴刚才的代码(如若没出现这种错误,请忽略本条)

执行及如果如下:

再刷新一次,即执行flush privileges; 

到这里密码就修改完成了,后面就是测试一下登陆结果

 

2. 测试登陆

        (1)关掉刚才的所有cmd窗口(一定要关,不然服务起不来);

        (2)干啥都要记住,打开MySQL服务

        (3)最后就又是一顿操作,通过cmd进入mysql的安装目录的bin文件夹下,输入如下指令:

mysql -uroot -p

具体操作按上图一步一步来

(1)同样进入mysql的安装目录的bin文件夹下;

(2)输入mysql -uroot -p

(3)输入刚刚修改的新密码;

登录结果出现:    mysql >

表示登陆成功!!!

 

 

最后我表示,学会修改MySQL密码的过程很痛苦,但是一步一步走起来,当你成功后,你会发现自己真的可以。

可能文章中有些地方有些错误,希望大家可以多多交流,指出不足之处。谢谢各位了!

老样子,送各位一句话:

过程很痛苦。收获很幸福。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章