MySQL是一個(gè)很強(qiáng)大的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),被廣泛應(yīng)用于各種Web應(yīng)用開(kāi)發(fā)。為了保護(hù)MySQL的安全性,MySQL默認(rèn)是需要賬戶和密碼認(rèn)證的。但是,如果我們忘記了MySQL的root賬戶密碼該怎么辦呢?
其實(shí),MySQL提供了一種萬(wàn)能密碼的機(jī)制,可以通過(guò)該密碼進(jìn)入MySQL并修改root賬戶密碼。
$ mysqld_safe --skip-grant-tables &
在終端輸入以上代碼執(zhí)行之后,就可以跳過(guò)MySQL的賬戶密碼認(rèn)證機(jī)制,在未授權(quán)的情況下進(jìn)入MySQL。接下來(lái),我們需要在另外一個(gè)終端中新開(kāi)一個(gè)窗口,并登錄MySQL。
$ mysql -uroot
這里的root賬戶是沒(méi)有密碼的,所以直接回車(chē)即可進(jìn)入。然后,在MySQL的命令行界面中,執(zhí)行以下命令:
mysql>use mysql; mysql>update user set authentication_string=password('newpassword') where User='root'; mysql>flush privileges; mysql>quit;
上述代碼意思是:選擇MySQL中的mysql數(shù)據(jù)庫(kù),然后更新user表中的root用戶的密碼為“newpassword”,更新完之后刷新權(quán)限和退出MySQL。
執(zhí)行完以上命令之后,我們就成功修改了MySQL的root賬戶密碼,并重啟MySQL即可生效。
總結(jié)來(lái)說(shuō),MySQL萬(wàn)能密碼實(shí)際上是一種跳過(guò)MySQL賬戶密碼認(rèn)證機(jī)制的方法,只有在遺忘root賬戶密碼時(shí)才應(yīng)該使用。一旦使用,需要盡快修改root賬戶密碼以保護(hù)MySQL的安全性。