一文詳解如何重置你的MySQL或MariaDB的root密碼
簡(jiǎn)介
最好的人也會(huì)忘記密碼。如果您忘記或丟失了 MySQL 或 MariaDB 數(shù)據(jù)庫(kù)的 root 密碼,只要您可以訪問(wèn)服務(wù)器并擁有一個(gè) sudo
-enabled 用戶賬戶,您仍然可以獲得訪問(wèn)權(quán)限并重置密碼。
本教程將介紹如何重置較舊和較新版本的 MySQL 和 MariaDB 的 root 密碼。
先決條件
要恢復(fù) root MySQL/MariaDB 密碼,您需要:
- 訪問(wèn)運(yùn)行 MySQL 或 MariaDB 的 Linux 服務(wù)器,并擁有一個(gè) sudo 用戶。
步驟 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)用戶權(quán)限的信息的情況下運(yùn)行 MySQL 和 MariaDB,它將允許您以 root 權(quán)限訪問(wèn)數(shù)據(jù)庫(kù)命令行,而無(wú)需提供密碼。這將允許您在不知道密碼的情況下訪問(wèn)數(shù)據(jù)庫(kù)。
為此,您需要阻止數(shù)據(jù)庫(kù)加載存儲(chǔ)用戶權(quán)限信息的 grant tables,同時(shí)還應(yīng)該跳過(guò)網(wǎng)絡(luò),以防止其他客戶端連接。
啟動(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 用戶身份連接到數(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用戶密碼如何重置的解決方案
- 重置MySQL 8.0 Root密碼的簡(jiǎn)便方法小結(jié)
- mysql重置root密碼的完整步驟(適用于5.7和8.0)
- MySQL9.0默認(rèn)路徑安裝下重置root密碼
相關(guān)文章
mySQL占用虛擬內(nèi)存達(dá)8百多兆問(wèn)題解決思路
為了裝mysql環(huán)境測(cè)試,裝上后發(fā)現(xiàn)啟動(dòng)后mysql占用了很大的虛擬內(nèi)存,達(dá)8百多兆,需要的朋友可以參考下2012-12-12Docker Dockerfile構(gòu)建MySQL并初始化數(shù)據(jù)方式
這篇文章主要介紹了Docker Dockerfile構(gòu)建MySQL并初始化數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法分析
這篇文章主要介紹了MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql使用Union合并連接查詢數(shù)據(jù)以及使用as實(shí)現(xiàn)表別名與字段別名操作,需要的朋友可以參考下2018-06-06Mysql數(shù)據(jù)庫(kù)錯(cuò)誤代碼中文詳細(xì)說(shuō)明
在mysql開(kāi)發(fā)中出現(xiàn)錯(cuò)誤代碼各種各樣,下面我來(lái)給大家收集常用見(jiàn)的mysql使用過(guò)程中出錯(cuò)代碼的中文說(shuō)明,希望些文章對(duì)各位朋友有所幫助了2013-08-08linux系統(tǒng)下實(shí)現(xiàn)mysql熱備份詳細(xì)步驟(mysql主從復(fù)制)
這篇文章主要介紹了linux系統(tǒng)下實(shí)現(xiàn)MySQL主從熱備份2013-12-12Centos 7 安裝mysql5.7.24二進(jìn)制 版本的方法及解決辦法
這篇文章主要介紹了Centos 7 安裝mysql5.7.24二進(jìn)制 版本的方法 及遇到問(wèn)題解決辦法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11MySQL將一個(gè)字段中以逗號(hào)分隔的取出來(lái)形成新的字段實(shí)現(xiàn)
這篇文章主要介紹了MySQL將一個(gè)字段中以逗號(hào)分隔的取出來(lái)形成新的字段實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10