mysql8重置root用戶密碼的完整步驟

這篇文章主要給大家分享介紹了關於mysql8重置root用戶密碼的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧

前言

最近很多新入職的同事問這個問題,特別是通過 homebrew 自動安裝的 mysql ,其版本默認已經是 8.0 了,由於增加了一些安全策略等限制,所以修改用戶密碼會稍微麻煩些,索性就把這個總結貼一下吧。

下面話不多說了,來一起看看詳細的介紹吧

步驟如下:

1、首先查看 root 用戶相關信息,在 mysql 數據庫的 user 表中:

select host, user, authentication_string, plugin from user;

host:允許用戶登錄的ip‘位置'%表示可以遠程;

user:當前數據庫的用戶名;

authentication_string:用戶密碼;在mysql 5.7.9以後廢棄了password字段和password()函數;

plugin:密碼加密方式;

如果發現 root 用戶的 authentication_string 字段下有內容,先將其設置爲空:

use mysql;
update user set authentication_string='' where user='root';

2、重啓 mysql 服務,mac 裏直接命令把服務關閉:

mysql.server stop

或者把 mysql 進程 kill 掉。然後在啓動 mysql 服務:

mysql.server start

3、用 root 用戶登錄,因爲已經把 authentication_string 設置爲空,所以可以免密碼登錄:

mysql -u root -p
passwrod:

不需要輸入密碼,直接回車即可

4、進入 mysql 庫,使用 ALTER 修改 root 用戶密碼:

ALTER user 'root' IDENTIFIED BY '123456' ;

語句中的 root 需要跟你實際 user 表裏 root 用戶存的是 root 還是 root@localhost 而定,由於我這裏把密碼改成了 123456 這樣比較簡單的格式,可能 mysql 8 默認密碼策略不允許,非要改的話可以先修改一下密碼策略:

set global validate_password.length = 6 ;

set global validate_password.policy = 'LOW';

FLUSH PRIVILEGES;

這裏把密碼長度由默認的8位改成了6位,並且密碼策略級別由 MEDIUM 改成了 LOW。如果要查看密碼校驗相關設置的話可以直接查詢系統變量:

SHOW VARIABLES LIKE 'validate_password.%';

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章