工作中一直在维护开发环境和生产环境的数据库,现在想做些小测试需要用到本地库,但忘记了账户名和密码。
还好本姑娘有点儿懒,用的是navicat工具,有记录用户名,不过无所谓,都能查出来。
第一步:关闭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)
第三步:查看用户名密码
select* from mysql.user;
如上图,反正是本机的,懒得重新设置密码,看下图 mysql_native_password *DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB
拿这个字符串去MD5解密一下(我设置的本机密码比较简单,所以就解密一下,如果大神设置的很不常见,那就要重新设置密码了--见第四步)
推荐MD5在线解密连接:
https://www.cmd5.com
然后我愉快的找到了我的密码,888888,是不是很easy~~
第四步:重新设置密码。
重新设置密码的语句根据你的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,登录成功
忘记密码,强行修改二:
1. 停止 mysql server. 通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server'
或者: sudo /usr/local/mysql/support-files/mysql.server stop
2. 打开终端,输入:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables (此处和强行修改一的区别就是 & 符号)
3. 打开另一个新终端,输入:
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
4. 重启 sudo /usr/local/mysql/support-files/mysql.server restart
5 用新密码登录
进入安装目录 cd /usr/local/mysql/bin/
mysql -u root -p
输入新密码 123456
登录成功。