共計 2414 個字符,預計需要花費 7 分鐘才能閱讀完成。
本文丸趣 TV 小編為大家詳細介紹“mysql 的密碼放在哪個表”,內容詳細,步驟清晰,細節處理妥當,希望這篇“mysql 的密碼放在哪個表”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。
mysql 的密碼放在 user 權限表的 authentication_string 字段中。user 表是 MySQL 中最重要的一個權限表,用來記錄允許連接到服務器的賬號信息;修改用戶密碼時,實際就是修改 user 表中 authentication_string 字段的值,語法為“SET PASSWORD FOR username @ hostname =PASSWORD (新密碼)”。
本教程操作環境:windows7 系統、mysql8 版本、Dell G3 電腦。
mysql 的密碼放在 user 權限表的 authentication_string 字段中。
MySQL user 權限表的用戶列
MySQL 在安裝時會自動創建一個名為 mysql 的數據庫,mysql 數據庫中存儲的都是用戶權限表。用戶登錄以后,MySQL 會根據這些權限表的內容為每個用戶賦予相應的權限。
user 表是 MySQL 中最重要的一個權限表,用來記錄允許連接到服務器的賬號信息。需要注意的是,在 user 表里啟用的所有權限都是全局級的,適用于所有數據庫。
user 表中的字段大致可以分為 4 類,分別是用戶列、權限列、安全列和資源控制列。
其中用戶列存儲了用戶連接 MySQL 數據庫時需要輸入的信息。
需要注意的是 MySQL 5.7 版本不再使用 Password 來作為密碼的字段,而改成了 authentication_string。
MySQL 用戶列如表 1 所示。
表 1:user 表的用戶列字段名字段類型是否為空默認值說明 Hostchar(60)NO 無主機名 Userchar(32)NO 無用戶名 authentication_stringtextYES 無密碼
用戶登錄時,如果這 3 個字段同時匹配,MySQL 數據庫系統才會允許其登錄。創建新用戶時,也是設置這 3 個字段的值。修改用戶密碼時,實際就是修改 user 表的 authentication_string 字段的值。因此,這 3 個字段決定了用戶能否登錄。
使用 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)
由運行結果可以看出,修改密碼成功。
讀到這里,這篇“mysql 的密碼放在哪個表”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注丸趣 TV 行業資訊頻道。