如何重置MySQL或MariaDB的Root密碼
幾個(gè)月前,我在Ubuntu 18.04 上安裝了 LAMP。今天,我嘗試以 root 用戶身份登錄數(shù)據(jù)庫,但我完全忘記了密碼。經(jīng)過一陣 Google 搜索并瀏覽一些文章后,我成功重置了密碼。對于那些想知道如何做到這一點(diǎn)的人,這個(gè)簡短的教程解釋了如何在類 Unix 操作系統(tǒng)中重置 MySQL 或 MariaDB Root 密碼。
重置 MySQL 或 MariaDB Root 密碼
首先,停止數(shù)據(jù)庫。
如果你使用 MySQL,請輸入以下命令并下按回車鍵。
$ sudo systemctl stop mysql
對于 MariaDB:
$ sudo systemctl stop mariadb
接下來,使用以下命令在沒有權(quán)限檢查的情況下重新啟動(dòng)數(shù)據(jù)庫:
$ sudo mysqld_safe --skip-grant-tables &
這里, --skip-grant-tables
選項(xiàng)讓你在沒有密碼和所有權(quán)限的情況下進(jìn)行連接。如果使用此選項(xiàng)啟動(dòng)服務(wù)器,它還會(huì)啟用 --skip-networking
選項(xiàng),這用于防止其他客戶端連接到數(shù)據(jù)庫服務(wù)器。并且,&
符號用于在后臺(tái)運(yùn)行命令,因此你可以在以下步驟中輸入其他命令。請注意,上述命令很危險(xiǎn),并且你的數(shù)據(jù)庫會(huì)變得不安全。你應(yīng)該只在短時(shí)間內(nèi)運(yùn)行此命令以重置密碼。
接下來,以 root 用戶身份登錄 MySQL/MariaDB 服務(wù)器:
$ mysql
在 mysql > 或 MariaDB [(none)] > 提示符下,運(yùn)行以下命令重置 root 用戶密碼:
UPDATE mysql.user SET Password=PASSWORD('NEW-PASSWORD') WHERE User='root';
使用你自己的密碼替換上述命令中的 NEW-PASSWORD。
然后,輸入以下命令退出 mysql 控制臺(tái)。
FLUSH PRIVILEGES;
exit
***,關(guān)閉之前使用 --skip-grant-tables
選項(xiàng)運(yùn)行的數(shù)據(jù)庫。為此,運(yùn)行:
$ sudo mysqladmin -u root -p shutdown
系統(tǒng)將要求你輸入在上一步中設(shè)置的 MySQL/MariaDB 用戶密碼。
現(xiàn)在,使用以下命令正常啟動(dòng) MySQL/MariaDB 服務(wù):
$ sudo systemctl start mysql
對于 MariaDB:
$ sudo systemctl start mariadb
使用以下命令驗(yàn)證密碼是否確實(shí)已更改:
$ mysql -u root -p
今天就是這些了。還有更多好東西。敬請期待!