MySQL root修改普通用戶密碼及Mysql 修改root密碼


在 MySQL 中,root 用戶擁有很高的權限,不僅可以修改自己的密碼,還可以修改其他用戶的密碼。本節主要介紹 root 用戶修改普通用戶密碼的幾種方法。

使用SET語句修改普通用戶的密碼

在 MySQL 中,只有 root 用戶可以通過更新 MySQL 數據庫來更改密碼。使用 root 用戶登錄到 MySQL 服務器后,可以使用 SET 語句來修改普通用戶密碼。語法格式如下:

SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');

其中,username 參數是普通用戶的用戶名,hostname 參數是普通用戶的主機名,newpwd 是要更改的新密碼。

注意:新密碼必須使用 PASSWORD() 函數來加密,如果不使用 PASSWORD() 加密,也會執行成功,但是用戶會無法登錄。

如果是普通用戶修改密碼,可省略 FOR 子句來更改自己的密碼。語法格式如下:

SET PASSWORD = PASSWORD('newpwd');

示例 1

首先創建一個沒有密碼的 testuser 用戶,SQL 語句和運行結果如下:

mysql> CREATE USER 'testuser'@'localhost';
Query OK, 0 rows affected (0.14 sec)

root 用戶登錄 MySQL 服務器后,再使用 SET 語句將 testuser 用戶的密碼修改為“newpwd”,SQL 語句和運行結果如下:

mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd");
Query OK, 0 rows affected, 1 warning (0.01 sec)

由運行結果可以看出,SET 語句執行成功,testuser 用戶的密碼被成功設置為“newpwd”。

下面驗證 testuser 用戶密碼是否修改成功。退出 MySQL 服務器,使用 testuser 用戶登錄,輸入密碼“newpwd”,SQL 語句和運行結果如下:

C:\Users\leovo>mysql -utestuser -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.29-log 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.

由運行結果可以看出,testuser 用戶登錄成功,修改密碼成功。

示例 2

使用 testuser 用戶登錄 MySQL 服務器,再使用 SET 語句將密碼更改為“newpwd1”,SQL 語句和運行結果如下所示:

mysql> SET PASSWORD = PASSWORD('newpwd1');
Query OK, 0 rows affected, 1 warning (0.00 sec)

由運行結果可以看出,修改密碼成功。

使用UPDATE語句修改普通用戶的密碼

使用 root 用戶登錄 MySQL 服務器后,可以使用 UPDATE 語句修改 MySQL 數據庫的 user 表的 authentication_string 字段,從而修改普通用戶的密碼。UPDATA 語句的語法如下:

UPDATE MySQL.user SET authentication_string = PASSWORD("newpwd") WHERE User = "username" AND Host = "hostname";

其中,username 參數是普通用戶的用戶名,hostname 參數是普通用戶的主機名,newpwd 是要更改的新密碼。

注意,執行 UPDATE 語句后,需要執行 FLUSH PRIVILEGES 語句重新加載用戶權限。

示例 3

使用 root 用戶登錄 MySQL 服務器,再使用 UPDATE 語句將 testuser 用戶的密碼修改為“newpwd2”的 SQL 語句和運行結果如下:

mysql> UPDATE MySQL.user SET authentication_string = PASSWORD ("newpwd2")
    -> WHERE User = "testuser" AND Host = "localhost";
Query OK, 1 row affected, 1 warning (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 1
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

由運行結果可以看出,密碼修改成功。testuser 的密碼被修改成了 newpwd2。使用 FLUSH PRIVILEGES 重新加載權限后,就可以使用新的密碼登錄 testuser 用戶了。

使用 GRANT 語句修改普通用戶密碼

除了前面介紹的方法,還可以在全局級別使用 GRANT USAGE 語句指定某個賬戶的密碼而不影響賬戶當前的權限。需要注意的是,使用 GRANT 語句修改密碼,必須擁有 GRANT 權限。一般情況下最好使用該方法來指定或修改密碼。語法格式如下:

GRANT USAGE ON *.* TO 'user'@’hostname’ IDENTIFIED BY 'newpwd';

其中,username 參數是普通用戶的用戶名,hostname 參數是普通用戶的主機名,newpwd 是要更改的新密碼。

示例 4

使用 root 用戶登錄 MySQL 服務器,再使用 GRANT 語句將 testuser 用戶的密碼修改為“newpwd3”,SQL 語句和運行結果如下:

mysql> GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY 'newpwd3';
Query OK, 0 rows affected, 1 warning (0.05 sec)

MySQL修改root密碼

在 MySQL 中,root 用戶擁有很高的權限,因此必須保證 root 用戶密碼的安全。修改 root 用戶密碼的方式有很多種,本節將介紹幾種常用的修改 root 用戶密碼的方法。

使用mysqladmin命令在命令行指定新密碼

root 用戶可以使用 mysqladmin 命令來修改密碼,mysqladmin 的語法格式如下:

mysqladmin -u username -h hostname -p password "newpwd"

語法參數說明如下:

  • usermame 指需要修改密碼的用戶名稱,在這里指定為 root 用戶;
  • hostname 指需要修改密碼的用戶主機名,該參數可以不寫,默認是 localhost;
  • password 為關鍵字,而不是指舊密碼;
  • newpwd 為新設置的密碼,必須用雙引號括起來。如果使用單引號會引發錯誤,可能會造成修改后的密碼不是你想要的。


執行完上面的語句,root 用戶的密碼將被修改為“newpwd”。

示例 1

下面使用 mysqladmin 將 root 用戶的密碼修改為“rootpwd”,在 Windows 命令行窗口(cmd)中執行命令和運行結果如下:

C:\Users\leovo>mysqladmin -u root -p password "rootpwd"
Enter password: ****
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

輸入 mysqladmin 命令后,按回車鍵,然后輸入 root 用戶原來的密碼。執行完畢后,密碼修改成功,root 用戶登錄時將使用新的密碼。

運行結果中,輸入密碼后會提示在命令行界面上使用密碼可能不安全的警告信息,因為在命令行輸入密碼時,MySQL 服務器就會提示這些安全警告信息。

下面使用修改后的“rootpwd”密碼登錄 root 用戶,SQL 語句和運行結果如下:

C:\Users\leovo>mysql -uroot -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 5.7.29-log 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.

結果顯示,root 用戶登錄成功,所以使用 mysqladmin 命令修改 root 用戶密碼成功。

修改MySQL數據庫的user表

因為所有賬戶信息都保存在 user 表中,因此可以直接通過修改 user 表來改變 root 用戶的密碼。

root 用戶登錄到 MySQL 服務器后,可以使用 UPDATE 語句修改 MySQL 數據庫的 user 表的 authentication_string 字段,從而修改用戶的密碼。

使用 UPDATA 語句修改 root 用戶密碼的語法格式如下:

UPDATE mysql.user set authentication_string = PASSWORD ("rootpwd) WHERE User = "root" and Host="localhost";

新密碼必須使用 PASSWORD() 函數來加密。執行UPDATE語句后,需要執行FLUSH PRIVILEGES語句重新加載用戶權限。

示例 2

下面使用 UPDATE 語句將 root用戶的密碼修改為“rootpwd2”。

使用 root 用戶登錄到 MySQL 服務器后,SQL 語句和運行結果如下所示:

mysql> UPDATE mysql.user set authentication_string = password ("rootpwd2")
    -> WHERE User = "root" and Host = "localhost";
Query OK, 1 row affected, 0 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings:0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.06 sec)

結果顯示,密碼修改成功。而且使用了FLUSH PRIVILEGES;語句加載權限。退出后就必須使用新密碼來登錄了。

使用SET語句修改root用戶的密碼

SET PASSWORD 語句可以用來重新設置其他用戶的登錄密碼或者自己使用的賬戶的密碼。使用 SET 語句修改密碼的語法結構如下:

SET PASSWORD = PASSWORD ("rootpwd");

示例 3

下面使用 SET 語句將 root 用戶的密碼修改為“rootpwd3”。

使用 root 用戶登錄到 MySQL 服務器后,SQL 語句和運行結果如下所示:

MySQL> SET PASSWORD = password ("rootpwd3");
Query OK, 0 rows affected (0.00 sec)

結果顯示,SET 語句執行成功,root 用戶的密碼被成功設置為“rootpwd3”。

ref:修改密碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM