原文地址:https://blog.csdn.net/u013972652/article/details/87254950
1、说明
开发过程中由于自己电脑安装的mysql密码更新过,没有做笔记,导致后期在使用时候提示密码错误,想着如何找回密码,网上查找到资料,整理如下:
2、解决办法
2.1 找回密码
- 第一步:关闭mysql服务器。
苹果 --》系统偏好设置 --》 mysql --》Stop Mysql Server
- 第二步:进入mysql安装路径,用系统管理员权限跳过mysql安全认证,命令结果如下图所示。
1.打开启动台--》其他 --》终端
2.进入mysql安装路径 cd /usr/local/mysql/bin/
3.登录管理员权限 sudo su
4.输入开机密码 ******
5.输入跳过mysql安全认证的命令 ./mysqld_safe --skip-grant-tables &
6.在第一步的mysql设置的画面中发现 关闭的mysql server 又重新变成running了
7.进入mysql 输入命令 ./mysql
如果显示以下字样,则为登录成功。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.24 MySQL Community Server (GPL)
8.刷新权限 FLUSH PRIVILEGES
Query OK, 0 rows affected (0.01 sec)
总结:忘记密码
- 关闭之前的mysql进程
- 跳过授权表开启mysql的服务端 mysqld --skip-grant-tables
- 刷新权限 flush privileges;
- 第三步:查看用户名密码
select* from mysql.user;
如上图,反正是本机的,懒得重新设置密码,看下图
mysql_native_password
: *DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB,拿这个字符串去MD5解密一下就可以找回密码。
如果密码过于繁琐,解密不出来,还可以进行密码重置
2.2 重新设置密码。
重新设置密码的语句根据你的mysql的版本而定。
- 情况一:知道旧密码,更新密码
1.进入安装目录 cd /usr/local/mysql/bin/
2.打开管理员权限 sudo su 输入开机密码
3.登录mysql mysql -u root -p 输入密码
如显示以下欢迎语,则登录成功!
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 70
Server version: 5.7.24 MySQL Community Server (GPL)
4.修改密码
如上一步查看用户名密码时: select * from mysql.user;
这个就是sql语句,一张user表,记录了你的账户信息,修改密码就是要修改其中一条记录的一个值,
新版的密码对应的字段名为:authentication_string
,输入命令:
update mysql.user set authentication_string = PASSWORD('123456') where User = 'root';
(旧版的密码对应修改命令为:UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User='root';)
如下显示,则为修改成功!然后刷新权限:FLUSH PRIVILEGES
;再退出:quit
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
5.重新登录 mysql mysql -u root -p 输入密码 123456 ,如下显示,则为新密码登录成功。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 80
情况二:忘记密码,强行修改
忘记密码强行修改一:
1.停止mysql服务:sudo /usr/local/mysql/support-files/mysql.server stop
输入开机密码
2.进入安装目录: cd /usr/local/mysql/bin
3.禁止mysql安全验证 ./mysqld_safe --skip-grant-tables &
显示如下时,禁止成功
root@guofei:/usr/local/mysql-5.7.24-macos10.14-x86_64/bin# 2019-02-14T05:18:51.6NZ mysqld_safe Logging to '/usr/local/mysql-5.7.24-macos10.14-x86_64/data/guofei.local.err'.
2019-02-14T05:18:51.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql-5.7.24-macos10.14-x86_64/data
输入./mysql
显示如下时,无安全认证情况下登录成功
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24 MySQL Community Server (GPL)
4.刷新权限 :FLUSH PRIVILEGES;
5.修改密码 : ALTER USER 'root'@'localhost' IDENTIFIED BY '888888';
6.退出mysql重新登录: quit
mysql -u root -p
输入刚刚更新的 888888,登录成功
- 忘记密码,强行修改二:
- 停止 mysql server. 通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server'
或者:sudo /usr/local/mysql/support-files/mysql.server stop
- 打开终端,输入:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
(此处和强行修改一的区别就是 & 符号) - 打开另一个新终端,输入:
sudo /usr/local/mysql/bin/mysql -u root
- UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
(旧版请使用:UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User='root';)
- FLUSH PRIVILEGES;
- `\q`
- 重启
sudo /usr/local/mysql/support-files/mysql.server restart
- 用新密码登录进入安装目录
cd /usr/local/mysql/bin/
mysql -u root -p
输入新密码 123456登录成功。