首頁  >  問答  >  主體

在 MySQL 8.0 中重設使用者密碼:逐步指南

我的問題和詳細資訊

我想在MySQL8.0中修改一個使用者的密碼,但網路上的方法好像幾乎都行不通。

這是我的 mysql.user 表詳細資訊:

mysql> select user, host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Excalibur        | %         |
| yyy              | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

我做了什麼

我嘗試過以下命令:

alter user 'yyy'@'%' identified with mysql_native_password by '12345';

並收到錯誤訊息:

ERROR 1396 (HY000): Operation ALTER USER failed for 'yyy'@'%'

我還嘗試自己操作 mysql.user 表:

update user set authentication_string=sha1('12345') where user = 'yyy' ;
flush privileges;

雖然它有效,但是我無法通過(我應該是的)密碼12345登入yyy。然後我看了一眼桌子,確實顯得很奇怪:

+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| Excalibur        | %         | $Arrreee5$tE.D2|7^FTRYjmg1APzveuTWyJ1BaO2al1GKvO3UJO6ZlX06jqbNkT5 |
| yyy              | %         | 8cb2237d0679ca88db6464eac60da96345513964                               |
| mysql.infoschema | localhost | $Arrreee5$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $Arrreee5$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
...

P粉724737511P粉724737511292 天前486

全部回覆(1)我來回復

  • P粉022285768

    P粉0222857682024-01-02 09:59:10

    對於 MySQL 8.0

    一般使用者使用以下指令更改密碼

    ALTER USER 'userName'@'localhost' IDENTIFIED BY 'New-Password-Here';

    root使用者使用以下指令更改密碼

    P.S 檢查使用帶有「$A$005$」的密碼,應該使用 caching_sha2_password 驗證插件,如果沒有「WITH caching_sha2_password」將不適用於 root 使用者。如果是一般用戶 需要授予權限。

    ALTER USER 'userName'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'New-Password-Here';

    回覆
    0
  • 取消回覆