問題:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
很久沒用這臺電腦的mysql了,今天需要連接資料庫,啟動資料庫報錯:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)

解決方法:
查閱資料后知道了,應該使用已知的用戶名和密碼登陸
mysql -u root -p
然而密碼忘了,試了好幾遍終于試出來了:

然后修改成通用的密碼,不亂折騰了:

發現很多教程都過時了,我的版本是Server version: 8.0.19 MySQL ,最新的方法:

mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
mysql> flush privileges;
退出驗證下看看有沒有成功:

可以看到修改密碼成功了,
然后呢,我又假裝密碼忘了,把忘記密碼的修改密碼方法演示一下:
第一步:關閉Mysql服務
首先先停止mysql服務,可通過net stop mysql或者任務管理器中關閉,

以管理員權限操作:

第二步:跳過Mysql密碼驗證
進入命令提示符(管理員登陸)操作,進入mysql目錄中bin檔案夾下,mysql8.0與其他版本不同的地方在于無法直接使用mysqld --skip-grant-tables來跳過密碼登錄,在這我們使用mysqld -console --skip-grant-tables --shared-memory來跳過權限驗證,

輸入執行后沒有反饋,新開一個管理員視窗重新執行,
進入目錄后,確保自己已經關閉了Mysql的服務:net stop mysql

關閉Mysql服務之后,繼續在D:\mysql-8.0.19-winx64\bin目錄下進行操作:
輸入
mysqld --console --skip-grant-tables --shared-memory
在輸入這行代碼之后,如下顯示,我們就已經成功跳過Mysql的密碼登錄了:

第三步:無密碼方式進入Mysql
在上述步驟之后,再打開一個管理員模式運行的cmd.exe
進入mysql下的bin目錄后,直接登錄mysql
不需要通過net start mysql打開mysql服務
在命令列中輸入以下代碼
d:
cd D:\mysql-8.0.19-winx64\bin(此處輸入自己電腦上的安裝目錄)
mysql -u root -p
如圖:

此時會顯示讓你輸入密碼,直接回車,就可以成功連接Mysql,

第四步:將登陸密碼設定為空
輸入代碼,將密碼設定為空(此時還不能直接修改密碼,必須先設定為空,否則會報錯)
輸入:
use mysql; (使用mysql資料表)
update user set authentication_string='' where user='root';(將密碼置為空)
quit; (然后退出Mysql)
操作如圖:

第五步:更改自己的登陸密碼
這里分為兩個部分
1.關閉第一個cmd視窗(一定要關閉!);
2.在第二個視窗中輸入代碼;
net stop mysql(關閉mysql服務,雖然會顯示沒有開啟服務,但是以防萬一)
net start mysql(再打開mysql服務)
(這里不要嫌麻煩,如果上一個mysql服務沒關閉,我們依舊是無密碼登陸)
操作如圖:

接著輸入:
cd D:\mysql-8.0.19-winx64\bin (此處輸入自己電腦上的安裝目錄)
mysql -u root -p
(此處會顯示輸入密碼,直接回車就好了,第四步我們已經將他置為空了)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';(更改密碼)
如圖:

最后一步:驗證密碼是否修改成功
輸入:
quit(退出mysql)
mysql -u root -p
(輸入新密碼,再次登錄)
圖示:

成功!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262527.html
標籤:其他
上一篇:關于用maven創建springmvc專案的一些坑(解決各種404!!!)
下一篇:git學習
