之前一直用圖形化界面,加上考研期間也沒動,竟然把我的數據庫密碼給忘了,無地自容.......
找了找教程,問題如下:
MySQL從低版本向高版本迭代變化的過程,越來越嚴謹的安全性是其一大特點之一,在版本6前,當忘記密碼,重置密碼,非常方面,只需使用執行如下兩步即可:
步驟一:跳過權限表
mysqld –skip-grant-tables
步驟二:將密碼置空
UPDATE user SET authentication_string='' WHERE user='root';
然而,這個方案,卻在MySQL8不適用!!!!
1.首先需要關閉mysql服務。
用管理員身份進入dos
輸入命令:net stop mysql
或者用服務關掉mysql服務
2.無密碼登錄數據庫
mysqld --console --skip-grant-tables --shared-memory
3.重新打開一個窗口(以管理員身份),無密碼登錄,登錄之后將密碼置空!
(1)進入mysql安裝目錄下的bin目錄
(2)輸入命令:mysql -u root
(3)登錄之后用這個命令將密碼置空!
注意:authentication_string采用的是plugin加密方式,故設置為空,不要設置為其他值(答應我!)
update mysql.user set authentication_string='' where user='root' and host='localhost';
4.重新打開一個窗口(以管理員身份),前兩個關閉,啟動服務
net start mysql
5.無密碼登錄,登錄之后再修改密碼為root,之后就可以用新密碼登錄了。
(1)無密碼登錄:mysql -u root
(2)修改密碼為root:alter user root@localhost identified by 'root';
(3)使用密碼登錄:mysql -u root -p
至此,密碼已經改好了。
一個題外話:我原來的密碼就是root,我記成了123456,試了123456,123,456,0000都不對!修改完密碼之后圖形化界面都沒修改鏈接就登上了,我服了我自己......