接手一个项目时,若是上一位负责人没有把项目文档、帐号密码整理好是一件很头疼的事情。。 例如,当你想打开MySQL数据库的时候 输入:html
mysql -u root -p
一回车想输入密码,发现密码错误!!mysql
# [MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)](https://www.cnblogs.com/gumuzi/p/5711495.html)
程序员
立马有种想要砸键盘的冲动~不过别慌,程序员最厉害的地方就是,上网找解决方案哈哈;web
下面就和你们分享一下 《MySQL忘记密码的解决方案》sql
my.cnf
配置文件的位置windows下修改的是my.ini,这里主要说的是Linux的具体操做,shell
Linux系统使用 whereis 可以很方便地找到文件的位置:数据库
$ whereis my $ my:/etc/my.cnf 复制代码
若是你是 root 用户,直接vim /etc/my.cnf
(注:windows下修改的是my.ini)vim
若是你是普通用户 , sudo vim /etc/my.cnf
windows
进入vim编辑器编辑以后,找到 [mysqld] ,按键盘的 i 键进入编辑模式,在[mysqld]后面任意一行添加 skip-grant-tables
用来跳过密码验证的过程:bash
按 ESC 退出编辑,键入 :wq ,回车即保存并退出。
$ sudo /etc/init.d/mysqld restart 复制代码
普通用户在这个命令最前面加上 sudo ,root 用户就不用啦。
$ mysql -u root -p 复制代码
出现Entering password 无需理会,回车便可进入 MySQL 数据库。
进入到 MySQL 数据库以后,咱们就能够更新 "mysql"数据库中“user”表的 root 记录的密码了
mysql > use mysql;
mysql > update user set password=password('YOUR_NEW_PASSWORD') where user='root';
mysql > flush privileges;
复制代码
步骤解析:
use mysql;
进入到名为 “mysql” 的数据库,
而后使用 update 语句更新密码,
更新密码以后使用 flush privileges;
刷新权限。
注意: password()函数是用于密码储存的加密函数,该函数的加密过程不可逆!所以除非用大量的数据进行比对,否则没办法使用什么逆函数查看旧的密码,只能使用该函数更新密码,YOUR_NEW_PASSWORD 就是本身设置的新密码。
设置好新密码以后,Ctrl + D退出 MySQL 数据库。
my.cnf
文件从新用 vim 打开 my.cnf ,将刚才的 skip-grant-tables 删除或者在前面加上#号注释,保存并退出。
$ sudo /etc/init.d/mysqld restart 复制代码
$ mysql -u root -p 复制代码
出现Entering password 时,输入你的新密码,回车进入,出现 mysql 欢迎界面,恭喜你,修改密码完成!
做者:57EN连接:https://juejin.im/post/5c0e579d5188257abf1d5414