原文地址:https://blog.csdn.net/u013972652/article/details/87254950
1险污、說(shuō)明
開(kāi)發(fā)過(guò)程中由于自己電腦安裝的mysql密碼更新過(guò),沒(méi)有做筆記,導(dǎo)致后期在使用時(shí)候提示密碼錯(cuò)誤赌莺,想著如何找回密碼,網(wǎng)上查找到資料,整理如下:
2份蝴、解決辦法
2.1 找回密碼
- 第一步:關(guān)閉mysql服務(wù)器。
蘋(píng)果 --》系統(tǒng)偏好設(shè)置 --》 mysql --》Stop Mysql Server
- 第二步:進(jìn)入mysql安裝路徑氓轰,用系統(tǒng)管理員權(quán)限跳過(guò)mysql安全認(rèn)證婚夫,命令結(jié)果如下圖所示。
1.打開(kāi)啟動(dòng)臺(tái)--》其他 --》終端
2.進(jìn)入mysql安裝路徑 cd /usr/local/mysql/bin/
3.登錄管理員權(quán)限 sudo su
4.輸入開(kāi)機(jī)密碼 ******
5.輸入跳過(guò)mysql安全認(rèn)證的命令 ./mysqld_safe --skip-grant-tables &
6.在第一步的mysql設(shè)置的畫(huà)面中發(fā)現(xiàn) 關(guān)閉的mysql server 又重新變成running了
7.進(jìn)入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.刷新權(quán)限 FLUSH PRIVILEGES
Query OK, 0 rows affected (0.01 sec)
總結(jié):忘記密碼
- 關(guān)閉之前的mysql進(jìn)程
- 跳過(guò)授權(quán)表開(kāi)啟mysql的服務(wù)端 mysqld --skip-grant-tables
- 刷新權(quán)限 flush privileges;
- 第三步:查看用戶(hù)名密碼
select* from mysql.user;
如上圖,反正是本機(jī)的靴庆,懶得重新設(shè)置密碼时捌,看下圖
mysql_native_password
: *DA28842831B3C40F4BC1D3C76CF9AD8CBFDAE1CB,拿這個(gè)字符串去MD5解密一下就可以找回密碼。
如果密碼過(guò)于繁瑣炉抒,解密不出來(lái)奢讨,還可以進(jìn)行密碼重置
2.2 重新設(shè)置密碼。
重新設(shè)置密碼的語(yǔ)句根據(jù)你的mysql的版本而定焰薄。
- 情況一:知道舊密碼拿诸,更新密碼
1.進(jìn)入安裝目錄 cd /usr/local/mysql/bin/
2.打開(kāi)管理員權(quán)限 sudo su 輸入開(kāi)機(jī)密碼
3.登錄mysql mysql -u root -p 輸入密碼
如顯示以下歡迎語(yǔ),則登錄成功塞茅!
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.修改密碼
如上一步查看用戶(hù)名密碼時(shí): select * from mysql.user;
這個(gè)就是sql語(yǔ)句佳镜,一張user表,記錄了你的賬戶(hù)信息凡桥,修改密碼就是要修改其中一條記錄的一個(gè)值蟀伸,
新版的密碼對(duì)應(yīng)的字段名為:authentication_string
,輸入命令:
update mysql.user set authentication_string = PASSWORD('123456') where User = 'root';
(舊版的密碼對(duì)應(yīng)修改命令為:UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User='root';)
如下顯示缅刽,則為修改成功啊掏!然后刷新權(quán)限: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
情況二:忘記密碼,強(qiáng)行修改
忘記密碼強(qiáng)行修改一:
1.停止mysql服務(wù):sudo /usr/local/mysql/support-files/mysql.server stop
輸入開(kāi)機(jī)密碼
2.進(jìn)入安裝目錄: cd /usr/local/mysql/bin
3.禁止mysql安全驗(yàn)證 ./mysqld_safe --skip-grant-tables &
顯示如下時(shí)啡省,禁止成功
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
顯示如下時(shí)娜睛,無(wú)安全認(rèn)證情況下登錄成功
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.刷新權(quán)限 :FLUSH PRIVILEGES;
5.修改密碼 : ALTER USER 'root'@'localhost' IDENTIFIED BY '888888';
6.退出mysql重新登錄: quit
mysql -u root -p
輸入剛剛更新的 888888,登錄成功
- 忘記密碼卦睹,強(qiáng)行修改二:
- 停止 mysql server. 通常是在 '系統(tǒng)偏好設(shè)置' > MySQL > 'Stop MySQL Server'
或者:sudo /usr/local/mysql/support-files/mysql.server stop
- 打開(kāi)終端畦戒,輸入:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
(此處和強(qiáng)行修改一的區(qū)別就是 & 符號(hào)) - 打開(kāi)另一個(gè)新終端,輸入:
sudo /usr/local/mysql/bin/mysql -u root
- UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
(舊版請(qǐng)使用:UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User='root';)
- FLUSH PRIVILEGES;
- `\q`
- 重啟
sudo /usr/local/mysql/support-files/mysql.server restart
- 用新密碼登錄進(jìn)入安裝目錄
cd /usr/local/mysql/bin/
mysql -u root -p
輸入新密碼 123456登錄成功结序。