1. 前言
忘記你的MySQL root密碼? 别擔心,它發生在我們所有人身上。
在本教程中,我們将向您展示如何重置MySQL root密碼,以防您忘記密碼。 本教程适用于任何現代Linux發行版,如Ubuntu 18.04、CentOS 7、Debian等等。
2. 準備工作
在繼續執行以下步驟之前,請確定以具有sudo權限的使用者身份登入伺服器。
根據您在系統上運作的MySQL或MariaDB伺服器版本,您将需要使用不同的指令來恢複root密碼。
你可以通過以下指令查到你的mysql版本:
[[email protected] ~]# mysql --version
如果你的系統中已經安裝了MySQL,輸出将如下所示:
mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
請務必記下您正在運作的MySQL或MariaDB版本。
3. 怎麼重置MySQL或MariaDB的root密碼
按以下教程步驟重置MySQL密碼
要更改root密碼,首先我們需要停止MySQL伺服器。 為此,請鍵入以下指令:
sudo systemctl stop mysql
4. 略過grant授權表啟動mysql/MariaDB服務
啟用--skip-grant-tables選項後,任何人都可以在沒有密碼和所有權限的情況下連接配接到資料庫伺服器。
要啟動資料庫伺服器而不加載grant授權表,請鍵入:
[[email protected] ~]# mysqld_safe --skip-grant-tables &
上面指令末尾的&符号将導緻程式在背景運作,是以我們可以繼續使用shell。
5. 登入mysql指令行界面
現在,您可以以root使用者身份連接配接到資料庫伺服器,而不會提示您輸入密碼:
[[email protected] ~]# mysql -u root
6. 重設mysql root密碼
如果您有MySQL 5.7.6及更高版本或MariaDB 10.1.20及更高版本,請運作以下指令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';
mysql> FLUSH PRIVILEGES;
如果ALTER USER語句不起作用,請嘗試直接修改使用者表:
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD')
mysql> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
如果您有MySQL 5.7.5及更早版本或MariaDB 10.1.20及更早版本,請運作以下指令:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
mysql> FLUSH PRIVILEGES;
在這兩種情況下,如果一切順利,您應該看到以下輸出:
Query OK, 0 rows affected (0.00 sec)
7. 停止Mysql資料庫和重新啟動正常模式
現在,我們已經重置了Mysql 資料庫的密碼,我們需要重新啟動到正常模式
使用以下指令停止資料庫運作:
[[email protected] ~]# mysqladmin -u root -p shutdown
啟動mysql資料庫:
[[email protected] ~]# systemctl start mysql
啟動MariaDB資料庫
[[email protected] ~]# systemctl start mariadb
8. 驗證新密碼
輸入以下指令,驗證剛剛設定的新密碼:
[[email protected] ~]# mysql -u root -p
提示你需要輸入剛剛設定的新密碼,如無意外,你應該可以正常登入到資料庫中。
9. 結論
在本教程中,您學習了如何重置MySQL或MariaDB root密碼。 確定您的新root密碼足夠複雜,并将其儲存在安全的地方。
如果您想學習如何管理MySQL使用者帳戶和資料庫,現在可以繼續浏覽本站技術文章。
如果您有任何疑問,請随時發表評論。