首頁 > 資料庫 > mysql教程 > mysql的密碼放在哪裡

mysql的密碼放在哪裡

青灯夜游
發布: 2022-06-27 16:39:09
原創
8712 人瀏覽過

mysql的密碼放在user權限表的authentication_string欄位中。 user表是MySQL中最重要的一個權限表,用來記錄允許連接到伺服器的帳號資訊;修改使用者密碼時,實際上就是修改user表中authentication_string欄位的值,語法為「SET PASSWORD FOR 'username'@' hostname'=PASSWORD ('新密碼')」。

mysql的密碼放在哪裡

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

mysql的密碼放在user權限表的authentication_string欄位中。

MySQL user權限表的使用者列

#MySQL 安裝時會自動建立一個名為mysql 的資料庫,mysql 資料庫中儲存的都是使用者權限表。使用者登入以後,MySQL 會根據這些權限表的內容為每個使用者賦予對應的權限。

user 表是 MySQL 中最重要的權限表,用來記錄允許連線到伺服器的帳號資訊。需要注意的是,在 user 表裡啟用的所有權限都是全域級的,適用於所有資料庫。

mysql的密碼放在哪裡

user 表中的欄位大致可以分為 4 類,分別是使用者列、權限列、安全性列和資源控制列。

其中使用者列儲存了使用者連接 MySQL 資料庫時需要輸入的資訊。

需要注意的是 MySQL 5.7 版本不再使用 Password 來作為密碼的字段,而改成了 authentication_string。

MySQL 使用者列如表 1 所示。

##NO無主機名稱Userchar(32)NO無使用者名稱authentication_stringtext#YES無
表1:user 資料表的使用者列
欄位名稱 欄位類型 是否為空白 預設值 說明
Host #char(60)

使用者登入時,如果這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影片教學###】####

以上是mysql的密碼放在哪裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板