MySQL忘记root密码【来自官方文档的方法,亲测有用】

  • 发布时间:2019年3月28日 11:20
  • 作者:杨仕航
  • 分类标签: 数据库
  • 阅读(26825)
  • 评论(3)

今天要在MySQL创建数据库,需要使用root用户登录。

执行 mysql -u root -p,输入密码。结果傻眼了,试了n遍,都没输入正确。看来只能重置密码或找回密码。


习惯性先在百度找了一圈。千篇一律都是“skip-grant-tables”跳过验证的方法。这个方法我测试是不成功的。

好吧,打开方式有问题。应该去MySQL官网找解决方案。一般有问题,找官方文档比较靠谱,而且节省时间。


打开MySQL官网,在其首页搜缩框输入“forget password”搜索,意思是“忘记密码”。(搜索框有点小,点击那个放大镜就可以输入)

搜索到内容如下:

https://www.oracle.com/search/results?cat=mysql&Ntk=SI-ALL5&Ntt=forget+password

20190327/20190327152828581.png


打开第1个链接,可看到提示:

20190327/20190327153237853.png


MySQL的官方文档已经给我们提供了重置root密码的方法:

https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

里面内容看不懂没关系,chrome浏览器可以直接翻译成中文。


我电脑是windows系统,我接下来讲解如何在windows系统重置MySQL root用户的密码。Linux和mac也大同小异,具体方法MySQL官方文档也有提供。



重置MySQL root用户的密码:


新建一个文本文件,写入修改用户密码的SQL语句。

MySQL 5.7.6及更高版本写这句:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';


MySQL 5.7.5及更早版本写这句:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');


保存的路径哪里都可以,我为了方便,保存在C盘根目录。我命名文件为root_init.txt,完整路径为C:\root_init.txt。

接着停掉MySQL服务,用管理员身份打开cmd,输入:

net stop mysql


20190328/20190328110516409.png


再执行如下命令,应用root_init.txt文件进行初始化操作:

mysqld --init-file="C:\\root_init.txt" --console


注意:

1、root_init.txt路径的"\"要写两个;

2、文件路径最好用双引号括起来,尤其路径有空格的情况;

3、没有mysqld命令的,一般是没有把MySQL的bin目录的路径加入到系统环境变量。可以用cd命令跳转到MySQL的bin路径下,再执行命令;

4、若你有特殊的MySQL数据库配置文件,可以运行如下命令,指定配置文件的位置:

mysqld
    --defaults-file="C:\\ProgramData\\mysql-8.0.15-winx64\\my.ini"
    --init-file="C:\\root_init.txt"
    --console

5、--console参数是可以把执行过程的信息输出到cmd,可以检查是否执行成功。


执行结果如下,则成功修改:

20190328/20190328111526546.png


按Ctrl + C,退出这个命令进程。然后,开启MySQL服务:

net start mysql


20190328/20190328111843674.png


登录root用户:

mysql -u root -p


输入新密码,成功登录!

20190328/20190328112002509.png

上一篇:Python生成数独题目

下一篇:Django使用MySQL数据库

评论列表

lowenve

lowenve

写的真好

2019-10-12 22:29 回复

  • lowenve

    呀啊

    2019-10-12 22:30 回复

lowenve

lowenve

2019-10-13 15:44 回复

新的评论

清空