MySQL - SET PASSWORD 語句



MySQL SET PASSWORD 語句

您可以使用 MySQL SET PASSWORD 語句為現有使用者設定密碼。使用此語句,您可以:

  • 為使用者帳戶設定特定密碼。
  • 設定隨機密碼。
  • 將當前密碼替換為新密碼。
  • 保留當前密碼作為其輔助密碼。

語法

以下是 MySQL SET PASSWORD 語句的語法:

SET PASSWORD [FOR user_name] new_password
   [REPLACE 'current_password_string']
   [RETAIN CURRENT PASSWORD]

其中,user_name 是您需要更改其密碼的使用者的名稱。

示例

假設我們使用 CREATE USER 語句建立了一個名為 sample 的使用者(沒有任何密碼),如下所示:

CREATE USER 'tp'@'localhost';

要以以上建立的使用者身份登入。開啟命令提示符,瀏覽到 MySQL 安裝資料夾的 bin 資料夾,並執行命令 mysql -u user_name -p,如下所示:

MySQL_Installation_Directorybin>mysql -u tp
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. 
All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the 
current input statement. MySQL SET PASSWORD Statement

現在您可以為當前使用者帳戶分配密碼,如下所示:

SET PASSWORD ='mypassword123';

為特定使用者設定密碼

您可以使用 SET PASSWORD 語句中的 FOR 子句為特定使用者設定/分配密碼。

SET PASSWORD FOR user_name password_string

示例

假設我們使用 CREATE USER 語句建立了一個名為 test 的使用者。

CREATE USER 'test'@'localhost';

以下查詢為以上建立的使用者分配密碼:

SET PASSWORD FOR 'test'@'localhost' = 'mypassword';

替換現有密碼

您可以使用 REPLACE 子句以及 SET PASSWORD 語句替換現有密碼。

SET PASSWORD = new_password REPLACE old_password;

示例

假設我們使用 CREATE USER 語句建立了一個名為 test 的使用者,併為其設定了密碼。

CREATE USER test@localhost IDENTIFIED BY 'test12345';

以以上建立的使用者身份登入。(開啟命令提示符,瀏覽到 MySQL 安裝資料夾的 bin 資料夾,並執行以下查詢):

MySQL_Installation_Directorybin>mysql -u tp -p
*********

以下查詢替換以上建立使用者的密碼:

SET PASSWORD = 'newpassword' REPLACE 'test12345';

您只能對當前使用者使用 REPLACE。

分配隨機密碼

您可以使用 RANDOM 子句以及 SET PASSWORD 語句分配隨機密碼。

SET PASSWORD TO RANDOM;

示例

假設我們使用 CREATE USER 語句建立了一個名為 sample 的使用者(沒有任何密碼),如下所示:

CREATE USER 'tp'@'localhost';

以下查詢為以上建立的使用者設定隨機密碼:

SET PASSWORD FOR 'tp'@'localhost' TO RANDOM;

輸出

以下是以上程式的輸出:

使用者 主機 生成的密碼
tp localhost hTWnSP:h0eAe(ywVJArm
廣告