一文詳解如何重置你的MySQL或MariaDB的root密碼
簡(jiǎn)介
最好的人也會(huì)忘記密碼。如果您忘記或丟失了 MySQL 或 MariaDB 數(shù)據(jù)庫(kù)的 root 密碼,只要您可以訪問(wèn)服務(wù)器并擁有一個(gè) sudo-enabled 用戶(hù)賬戶(hù),您仍然可以獲得訪問(wèn)權(quán)限并重置密碼。
本教程將介紹如何重置較舊和較新版本的 MySQL 和 MariaDB 的 root 密碼。
先決條件
要恢復(fù) root MySQL/MariaDB 密碼,您需要:
- 訪問(wèn)運(yùn)行 MySQL 或 MariaDB 的 Linux 服務(wù)器,并擁有一個(gè) sudo 用戶(hù)。
步驟 1 —— 確定數(shù)據(jù)庫(kù)版本
大多數(shù)現(xiàn)代 Linux 發(fā)行版都附帶了 MySQL 或 MariaDB,后者是一個(gè)流行的兼容 MySQL 的替代品。根據(jù)使用的數(shù)據(jù)庫(kù)及其版本,您需要使用不同的命令來(lái)恢復(fù) root 密碼。
您可以使用以下命令檢查您的版本:
mysql --version
對(duì)于 MySQL,您將看到如下輸出:
[secondary_label MySQL output] mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
對(duì)于 MariaDB,您將看到如下輸出:
[secondary_label MariaDB output] mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1
記下您正在運(yùn)行的數(shù)據(jù)庫(kù)和版本,因?yàn)槟院髸?huì)用到它們。接下來(lái),您需要停止數(shù)據(jù)庫(kù),以便手動(dòng)訪問(wèn)它。
步驟 2 —— 停止數(shù)據(jù)庫(kù)服務(wù)器
要更改 root 密碼,您必須先關(guān)閉數(shù)據(jù)庫(kù)服務(wù)器。
對(duì)于 MySQL,您可以使用以下命令:
sudo systemctl stop mysql
對(duì)于 MariaDB,您可以使用以下命令:
sudo systemctl stop mariadb
數(shù)據(jù)庫(kù)服務(wù)器停止后,您將手動(dòng)訪問(wèn)它以重置 root 密碼。
步驟 3 —— 無(wú)需權(quán)限檢查地重新啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器
如果您在不加載有關(guān)用戶(hù)權(quán)限的信息的情況下運(yùn)行 MySQL 和 MariaDB,它將允許您以 root 權(quán)限訪問(wèn)數(shù)據(jù)庫(kù)命令行,而無(wú)需提供密碼。這將允許您在不知道密碼的情況下訪問(wèn)數(shù)據(jù)庫(kù)。
為此,您需要阻止數(shù)據(jù)庫(kù)加載存儲(chǔ)用戶(hù)權(quán)限信息的 grant tables,同時(shí)還應(yīng)該跳過(guò)網(wǎng)絡(luò),以防止其他客戶(hù)端連接。
啟動(dòng)數(shù)據(jù)庫(kù)時(shí)不加載 grant tables 或啟用網(wǎng)絡(luò):
sudo mysqld_safe --skip-grant-tables --skip-networking &
該命令末尾的“&”將使此進(jìn)程在后臺(tái)運(yùn)行,以便您可以繼續(xù)使用終端。
現(xiàn)在,您可以以 root 用戶(hù)身份連接到數(shù)據(jù)庫(kù),這不應(yīng)該要求輸入密碼。
mysql -u root
您將立即看到一個(gè)數(shù)據(jù)庫(kù) shell 提示符。
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
現(xiàn)在您已經(jīng)獲得了 root 訪問(wèn)權(quán)限,可以更改 root 密碼。
步驟 4 —— 更改 root 密碼
對(duì)于較新版本的 MySQL,一種簡(jiǎn)單的更改 root 密碼的方法是使用 ALTER USER 命令。但是,由于 grant tables 沒(méi)有加載,此命令現(xiàn)在不起作用。
讓我們告訴數(shù)據(jù)庫(kù)服務(wù)器通過(guò)發(fā)出 FLUSH PRIVILEGES 命令重新加載 grant tables。
FLUSH PRIVILEGES;
現(xiàn)在我們實(shí)際上可以更改 root 密碼。
對(duì)于 MySQL 5.7.6 及更新版本 以及 MariaDB 10.1.20 及更新版本,使用以下命令。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
對(duì)于 MySQL 5.7.5 及更舊版本 以及 MariaDB 10.1.20 及更舊版本,使用:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
請(qǐng)確保將 new_password 替換為您選擇的新密碼。
無(wú)論哪種情況,您都應(yīng)該看到命令已成功執(zhí)行的確認(rèn)。
Query OK, 0 rows affected (0.00 sec)
密碼已更改,現(xiàn)在您可以停止數(shù)據(jù)庫(kù)服務(wù)器的手動(dòng)實(shí)例,并像之前一樣重新啟動(dòng)它。
步驟 5 —— 正常重新啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器
首先,停止您在步驟 3 中手動(dòng)啟動(dòng)的數(shù)據(jù)庫(kù)服務(wù)器實(shí)例。此命令搜索 MySQL 或 MariaDB 進(jìn)程的 PID(進(jìn)程 ID),并發(fā)送 SIGTERM 以告知其在執(zhí)行清理操作后平滑退出。您可以在此 Linux 進(jìn)程管理教程中了解更多信息。
對(duì)于 MySQL,使用:
sudo kill `cat /var/run/mysqld/mysqld.pid`
對(duì)于 MariaDB,使用:
sudo kill `/var/run/mariadb/mariadb.pid`
然后,使用 systemctl 重新啟動(dòng)服務(wù)。
對(duì)于 MySQL,使用:
sudo systemctl start mysql
對(duì)于 MariaDB,使用:
sudo systemctl start mariadb
現(xiàn)在,您可以通過(guò)運(yùn)行以下命令確認(rèn)新密碼已正確應(yīng)用:
mysql -u root -p
該命令現(xiàn)在應(yīng)提示輸入新分配的密碼。輸入后,您應(yīng)該如預(yù)期般獲得對(duì)數(shù)據(jù)庫(kù)提示的訪問(wèn)權(quán)限。
結(jié)論
您現(xiàn)在已經(jīng)恢復(fù)了對(duì) MySQL 或 MariaDB 服務(wù)器的管理訪問(wèn)權(quán)限。確保您選擇的新 root 密碼是強(qiáng)大和安全的,并將其保存在安全的地方。
到此這篇關(guān)于重置你的MySQL或MariaDB的root密碼的文章就介紹到這了,更多相關(guān)MySQL或MariaDB的root密碼重置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL5.7安裝過(guò)程并重置root密碼的方法(shell 腳本)
- Mac MySQL重置Root密碼的教程
- mysql8.0.12如何重置root密碼
- 重置mysql的root密碼最簡(jiǎn)單的方法
- MySQL root密碼的重置方法
- 一次MySql重置root密碼無(wú)效的實(shí)戰(zhàn)記錄
- MySQL忘記密碼重置root密碼純步驟分享
- MySQL忘記了root用戶(hù)密碼如何重置的解決方案
- 重置MySQL 8.0 Root密碼的簡(jiǎn)便方法小結(jié)
- mysql重置root密碼的完整步驟(適用于5.7和8.0)
- MySQL9.0默認(rèn)路徑安裝下重置root密碼
相關(guān)文章
mysql自增長(zhǎng)ID字段丟失問(wèn)題及解決
MySQL 8.0前InnoDB自增ID重啟會(huì)丟失,重新插入從max+1開(kāi)始;8.0后持久化到磁盤(pán),保留原有值,MyISAM在8.0及以后版本均不會(huì)丟失自增ID,差異源于存儲(chǔ)引擎對(duì)自增值的處理方式2025-09-09
MySQL索引失效十種場(chǎng)景與優(yōu)化方案
這篇文章主要介紹了MySQL索引失效十種場(chǎng)景與優(yōu)化方案,文中有詳細(xì)的代碼示例供參考閱讀,感興趣的朋友可以看一下2023-05-05
MySQL 統(tǒng)計(jì)查詢(xún)實(shí)現(xiàn)代碼
MySQL 統(tǒng)計(jì)查詢(xún)其實(shí)就是通過(guò)SELECT COUNT() FROM 語(yǔ)法用于從數(shù)據(jù)表中統(tǒng)計(jì)數(shù)據(jù)行數(shù)2014-05-05
Mysql使用sum()函數(shù)返回null的問(wèn)題詳解
mysql導(dǎo)出表的字段和相關(guān)屬性的步驟方法

