一文詳解如何重置你的MySQL或MariaDB的root密碼
簡介
最好的人也會(huì)忘記密碼。如果您忘記或丟失了 MySQL 或 MariaDB 數(shù)據(jù)庫的 root 密碼,只要您可以訪問服務(wù)器并擁有一個(gè) sudo
-enabled 用戶賬戶,您仍然可以獲得訪問權(quán)限并重置密碼。
本教程將介紹如何重置較舊和較新版本的 MySQL 和 MariaDB 的 root 密碼。
先決條件
要恢復(fù) root MySQL/MariaDB 密碼,您需要:
- 訪問運(yùn)行 MySQL 或 MariaDB 的 Linux 服務(wù)器,并擁有一個(gè) sudo 用戶。
步驟 1 —— 確定數(shù)據(jù)庫版本
大多數(shù)現(xiàn)代 Linux 發(fā)行版都附帶了 MySQL 或 MariaDB,后者是一個(gè)流行的兼容 MySQL 的替代品。根據(jù)使用的數(shù)據(jù)庫及其版本,您需要使用不同的命令來恢復(fù) root 密碼。
您可以使用以下命令檢查您的版本:
mysql --version
對于 MySQL,您將看到如下輸出:
[secondary_label MySQL output] mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
對于 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ù)庫和版本,因?yàn)槟院髸?huì)用到它們。接下來,您需要停止數(shù)據(jù)庫,以便手動(dòng)訪問它。
步驟 2 —— 停止數(shù)據(jù)庫服務(wù)器
要更改 root 密碼,您必須先關(guān)閉數(shù)據(jù)庫服務(wù)器。
對于 MySQL,您可以使用以下命令:
sudo systemctl stop mysql
對于 MariaDB,您可以使用以下命令:
sudo systemctl stop mariadb
數(shù)據(jù)庫服務(wù)器停止后,您將手動(dòng)訪問它以重置 root 密碼。
步驟 3 —— 無需權(quán)限檢查地重新啟動(dòng)數(shù)據(jù)庫服務(wù)器
如果您在不加載有關(guān)用戶權(quán)限的信息的情況下運(yùn)行 MySQL 和 MariaDB,它將允許您以 root 權(quán)限訪問數(shù)據(jù)庫命令行,而無需提供密碼。這將允許您在不知道密碼的情況下訪問數(shù)據(jù)庫。
為此,您需要阻止數(shù)據(jù)庫加載存儲(chǔ)用戶權(quán)限信息的 grant tables,同時(shí)還應(yīng)該跳過網(wǎng)絡(luò),以防止其他客戶端連接。
啟動(dòng)數(shù)據(jù)庫時(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ù)庫,這不應(yīng)該要求輸入密碼。
mysql -u root
您將立即看到一個(gè)數(shù)據(jù)庫 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 訪問權(quán)限,可以更改 root 密碼。
步驟 4 —— 更改 root 密碼
對于較新版本的 MySQL,一種簡單的更改 root 密碼的方法是使用 ALTER USER
命令。但是,由于 grant tables 沒有加載,此命令現(xiàn)在不起作用。
讓我們告訴數(shù)據(jù)庫服務(wù)器通過發(fā)出 FLUSH PRIVILEGES
命令重新加載 grant tables。
FLUSH PRIVILEGES;
現(xiàn)在我們實(shí)際上可以更改 root 密碼。
對于 MySQL 5.7.6 及更新版本 以及 MariaDB 10.1.20 及更新版本,使用以下命令。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
對于 MySQL 5.7.5 及更舊版本 以及 MariaDB 10.1.20 及更舊版本,使用:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
請確保將 new_password
替換為您選擇的新密碼。
無論哪種情況,您都應(yīng)該看到命令已成功執(zhí)行的確認(rèn)。
Query OK, 0 rows affected (0.00 sec)
密碼已更改,現(xiàn)在您可以停止數(shù)據(jù)庫服務(wù)器的手動(dòng)實(shí)例,并像之前一樣重新啟動(dòng)它。
步驟 5 —— 正常重新啟動(dòng)數(shù)據(jù)庫服務(wù)器
首先,停止您在步驟 3 中手動(dòng)啟動(dòng)的數(shù)據(jù)庫服務(wù)器實(shí)例。此命令搜索 MySQL 或 MariaDB 進(jìn)程的 PID(進(jìn)程 ID),并發(fā)送 SIGTERM
以告知其在執(zhí)行清理操作后平滑退出。您可以在此 Linux 進(jìn)程管理教程中了解更多信息。
對于 MySQL,使用:
sudo kill `cat /var/run/mysqld/mysqld.pid`
對于 MariaDB,使用:
sudo kill `/var/run/mariadb/mariadb.pid`
然后,使用 systemctl
重新啟動(dòng)服務(wù)。
對于 MySQL,使用:
sudo systemctl start mysql
對于 MariaDB,使用:
sudo systemctl start mariadb
現(xiàn)在,您可以通過運(yùn)行以下命令確認(rèn)新密碼已正確應(yīng)用:
mysql -u root -p
該命令現(xiàn)在應(yīng)提示輸入新分配的密碼。輸入后,您應(yīng)該如預(yù)期般獲得對數(shù)據(jù)庫提示的訪問權(quán)限。
結(jié)論
您現(xiàn)在已經(jīng)恢復(fù)了對 MySQL 或 MariaDB 服務(wù)器的管理訪問權(quán)限。確保您選擇的新 root 密碼是強(qiáng)大和安全的,并將其保存在安全的地方。
到此這篇關(guān)于重置你的MySQL或MariaDB的root密碼的文章就介紹到這了,更多相關(guān)MySQL或MariaDB的root密碼重置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mySQL占用虛擬內(nèi)存達(dá)8百多兆問題解決思路
為了裝mysql環(huán)境測試,裝上后發(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à)值,希望對大家有所幫助,如有錯(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ù)庫錯(cuò)誤代碼中文詳細(xì)說明
在mysql開發(fā)中出現(xiàn)錯(cuò)誤代碼各種各樣,下面我來給大家收集常用見的mysql使用過程中出錯(cuò)代碼的中文說明,希望些文章對各位朋友有所幫助了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)制 版本的方法 及遇到問題解決辦法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11MySQL將一個(gè)字段中以逗號(hào)分隔的取出來形成新的字段實(shí)現(xiàn)
這篇文章主要介紹了MySQL將一個(gè)字段中以逗號(hào)分隔的取出來形成新的字段實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10