工作中一直在維護開發環境和生產環境的數據庫,現在想做些小測試需要用到本地庫,但忘記了賬戶名和密碼。
還好本姑娘有點兒懶,用的是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在線解密連接:
然后我愉快的找到了我的密碼,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
登錄成功。