溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql的密碼放在哪個表

發(fā)布時間:2022-06-28 11:47:11 來源:億速云 閱讀:2893 作者:iii 欄目:MySQL數(shù)據(jù)庫

本文小編為大家詳細介紹“mysql的密碼放在哪個表”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“mysql的密碼放在哪個表”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

mysql的密碼放在user權(quán)限表的authentication_string字段中。user表是MySQL中最重要的一個權(quán)限表,用來記錄允許連接到服務(wù)器的賬號信息;修改用戶密碼時,實際就是修改user表中authentication_string字段的值,語法為“SET PASSWORD FOR 'username'@'hostname'=PASSWORD ('新密碼')”。

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

mysql的密碼放在user權(quán)限表的authentication_string字段中。

MySQL user權(quán)限表的用戶列

MySQL 在安裝時會自動創(chuàng)建一個名為 mysql 的數(shù)據(jù)庫,mysql 數(shù)據(jù)庫中存儲的都是用戶權(quán)限表。用戶登錄以后,MySQL 會根據(jù)這些權(quán)限表的內(nèi)容為每個用戶賦予相應(yīng)的權(quán)限。

user 表是 MySQL 中最重要的一個權(quán)限表,用來記錄允許連接到服務(wù)器的賬號信息。需要注意的是,在 user 表里啟用的所有權(quán)限都是全局級的,適用于所有數(shù)據(jù)庫。

mysql的密碼放在哪個表

user 表中的字段大致可以分為 4 類,分別是用戶列、權(quán)限列、安全列和資源控制列。

其中用戶列存儲了用戶連接 MySQL 數(shù)據(jù)庫時需要輸入的信息。

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

MySQL 用戶列如表 1 所示。

表 1:user 表的用戶列
字段名字段類型是否為空默認值說明
Hostchar(60)NO主機名
Userchar(32)NO用戶名
authentication_stringtextYES密碼

用戶登錄時,如果這 3 個字段同時匹配,MySQL 數(shù)據(jù)庫系統(tǒng)才會允許其登錄。創(chuàng)建新用戶時,也是設(shè)置這 3 個字段的值。修改用戶密碼時,實際就是修改 user 表的 authentication_string 字段的值。因此,這 3 個字段決定了用戶能否登錄。

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

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

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

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

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

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

SET PASSWORD = PASSWORD('newpwd');

示例 1

首先創(chuàng)建一個沒有密碼的 testuser 用戶,SQL 語句和運行結(jié)果如下:

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

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

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

由運行結(jié)果可以看出,SET 語句執(zhí)行成功,testuser 用戶的密碼被成功設(shè)置為“newpwd”。

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

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.

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

示例 2

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

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

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

讀到這里,這篇“mysql的密碼放在哪個表”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI