MySQL如何重置root密碼
1. 前言
忘記你的MySQL root密碼? 別擔心,它發生在我們所有人身上。
在本教程中,我們將向您展示如何重置MySQL root密碼,以防您忘記密碼。 本教程適用于任何現代Linux發行版,如Ubuntu 18.04、CentOS 7、Debian等等。
2. 準備工作
在繼續執行以下步驟之前,請確保以具有sudo權限的用戶身份登錄服務器。
根據您在系統上運行的MySQL或MariaDB服務器版本,您將需要使用不同的命令來恢復root密碼。
你可以通過以下命令查到你的mysql版本:
- [root@zcwyou ~]# 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
怎么重置MySQL或MariaDB的root密碼
4. 略過grant授權表啟動mysql/MariaDB服務
啟用--skip-grant-tables選項后,任何人都可以在沒有密碼和所有權限的情況下連接到數據庫服務器。
要啟動數據庫服務器而不加載grant授權表,請鍵入:
- [root@zcwyou ~]# mysqld_safe --skip-grant-tables &
上面命令末尾的&符號將導致程序在后臺運行,因此我們可以繼續使用shell。
5. 登錄`mysql`命令行界面
現在,您可以以root用戶身份連接到數據庫服務器,而不會提示您輸入密碼:
- [root@zcwyou ~]# 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 數據庫的密碼,我們需要重新啟動到正常模式
使用以下命令停止數據庫運行:
- [root@zcwyou ~]# mysqladmin -u root -p shutdown
啟動mysql數據庫:
- [root@zcwyou ~]# systemctl start mysql
啟動MariaDB數據庫
- [root@zcwyou ~]# systemctl start mariadb
8. 驗證新密碼
輸入以下命令,驗證剛剛設置的新密碼:
- [root@zcwyou ~]# mysql -u root -p
提示你需要輸入剛剛設置的新密碼,如無意外,你應該可以正常登錄到數據庫中。
9. 結論
在本教程中,您學習了如何重置MySQL或MariaDB root密碼。 確保您的新root密碼足夠復雜,并將其保存在安全的地方。