查詢MySQL用戶兩種的最常用方法總結(jié)
前言
查詢 MySQL 用戶有多種方法,主要分為兩大類:使用 MySQL 命令行工具和使用圖形化界面工具。
我將以最常用和權(quán)威的命令行方式為主進(jìn)行詳細(xì)說(shuō)明。
方法一:使用 MySQL 命令行工具(最直接的方法)
首先,你需要使用一個(gè)具有足夠權(quán)限的賬戶(如 root 用戶)登錄到 MySQL 服務(wù)器。
mysql -u root -p
然后輸入密碼。
1. 查詢所有用戶列表(核心方法)
MySQL 將所有用戶賬戶信息存儲(chǔ)在默認(rèn)數(shù)據(jù)庫(kù) mysql 的 user 表中。因此,直接查詢?cè)摫砑纯伞?/p>
SELECT User, Host FROM mysql.user;
解釋:
SELECT User, Host: 選擇顯示用戶名列和主機(jī)名列。FROM mysql.user: 從mysql數(shù)據(jù)庫(kù)的user表中查詢。- 在 MySQL 中,一個(gè)用戶的完整標(biāo)識(shí)是
'用戶名'@'主機(jī)名'。主機(jī)名指定了該用戶可以從哪里連接到數(shù)據(jù)庫(kù)(例如,'root'@'localhost'和'root'@'%'是兩個(gè)不同的用戶)。
執(zhí)行結(jié)果示例:
+------------------+-----------+ | User | Host | +------------------+-----------+ | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | | myapp_user | % | | readonly_user | 192.168.1.% | +------------------+-----------+
2. 獲取更詳細(xì)的用戶信息
你可以從 mysql.user 表中選擇更多的列來(lái)獲取用戶的詳細(xì)權(quán)限和設(shè)置。
SELECT
User,
Host,
account_locked,
password_expired,
authentication_string,
Select_priv,
Insert_priv,
Update_priv,
Delete_priv
FROM mysql.user;
解釋:
account_locked: 賬戶是否被鎖定(Y/N)。password_expired: 密碼是否過(guò)期(Y/N)。authentication_string: 密碼的加密哈希值(在 MySQL 5.7.6+ 中,此列取代了password列)。Select_priv,Insert_priv…: 這些列表示用戶的全局權(quán)限(是否為Y)。
3. 以更清晰的格式查看當(dāng)前用戶
如果你想查看當(dāng)前登錄的是哪個(gè)用戶,可以使用以下函數(shù):
SELECT CURRENT_USER();
輸出示例:
+----------------+ | CURRENT_USER() | +----------------+ | root@localhost | +----------------+
4. 查看當(dāng)前登錄的用戶(會(huì)話信息)
這個(gè)方法顯示的是你通過(guò)哪個(gè)用戶認(rèn)證進(jìn)入當(dāng)前會(huì)話的,與 CURRENT_USER() 結(jié)果一致。
SELECT USER(); -- 或者 SELECT SYSTEM_USER();
方法二:使用圖形化界面工具(如 phpMyAdmin, MySQL Workbench)
如果你使用圖形化工具,操作會(huì)更簡(jiǎn)單直觀。
- 登錄到你的數(shù)據(jù)庫(kù)管理工具。
- 在左側(cè)的導(dǎo)航欄(對(duì)象瀏覽器)中,找到并點(diǎn)擊 “用戶和權(quán)限” 或 “Users and Privileges”。
- 點(diǎn)擊后,工具會(huì)自動(dòng)加載并顯示一個(gè)所有用戶的列表,通常會(huì)包含用戶名、主機(jī)名以及一些基本權(quán)限信息。你可以點(diǎn)擊具體的用戶來(lái)查看和管理其詳細(xì)權(quán)限。
重要提示和最佳實(shí)踐
- 權(quán)限要求: 執(zhí)行
SELECT ... FROM mysql.user需要SELECT權(quán)限。通常只有 root 用戶或具有全局權(quán)限的管理員用戶才有此權(quán)限。 - 安全警告:
mysql.user表是系統(tǒng)核心表,不要直接使用DELETE,UPDATE,INSERT等語(yǔ)句修改它,除非你非常清楚自己在做什么。建議使用專門(mén)的 SQL 命令來(lái)管理用戶,例如:- 創(chuàng)建用戶:
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; - 刪除用戶:
DROP USER 'username'@'host'; - 授予權(quán)限:
GRANT ... ON ... TO 'username'@'host';
- 創(chuàng)建用戶:
- 密碼字段: 在 MySQL 5.7.6 及以上版本中,密碼存儲(chǔ)在
authentication_string列。在老版本(如 5.6)中,可能仍然叫Password列。如果你在查詢密碼哈希值時(shí)發(fā)現(xiàn)列為空,可能是因?yàn)橛脩羰褂昧?mysql_native_password之外的認(rèn)證插件(如auth_socket)。
總結(jié)
對(duì)于絕大多數(shù)情況,你只需要記住并在 MySQL 命令行中執(zhí)行這一條命令:
SELECT User, Host FROM mysql.user;
這就能清晰地列出數(shù)據(jù)庫(kù)中的所有用戶及其允許連接的主機(jī),這是進(jìn)行用戶管理和權(quán)限排查的第一步。
到此這篇關(guān)于查詢MySQL用戶兩種最常用方法的文章就介紹到這了,更多相關(guān)查詢MySQL用戶內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介與基本操作
這篇文章介紹了MySQL數(shù)據(jù)庫(kù)與其基本操作,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
Navicat自動(dòng)備份MySQL數(shù)據(jù)的流程步驟
對(duì)于從事IT開(kāi)發(fā)的工程師,數(shù)據(jù)備份我想大家并不陌生,這件工程太重要了!對(duì)于比較重要的數(shù)據(jù),我們希望能定期備份,每天備份1次或多次,或者是每周備份1次或多次,所以本文給大家介紹了Navicat自動(dòng)備份MySQL數(shù)據(jù)的流程步驟,需要的朋友可以參考下2024-12-12
win11設(shè)置mysql開(kāi)機(jī)自啟的實(shí)現(xiàn)方法
本文主要介紹了win11設(shè)置mysql開(kāi)機(jī)自啟的實(shí)現(xiàn)方法,要通過(guò)命令行方式設(shè)置,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
MySQL大表數(shù)據(jù)碎片的判斷與整理優(yōu)化實(shí)戰(zhàn)指南
在MySQL數(shù)據(jù)庫(kù)運(yùn)維過(guò)程中,大表的碎片問(wèn)題是影響性能和磁盤(pán)空間利用率的常見(jiàn)痛點(diǎn),刪除、更新數(shù)據(jù)后極易產(chǎn)生碎片,導(dǎo)致表文件臃腫、查詢變慢、磁盤(pán)空間浪費(fèi),本文將從碎片成因、判斷方法、整理操作、注意事項(xiàng)四個(gè)維度,手把手教你搞定MySQL大表碎片整理優(yōu)化2026-05-05
MySQL遷移到Oracle數(shù)據(jù)庫(kù)的超詳細(xì)步驟和方法總結(jié)
今天接到一個(gè)任務(wù),讓我把MySQL中的表與數(shù)據(jù)移植到Oracle中,所以這里總結(jié)下,這篇文章主要給大家介紹了關(guān)于MySQL遷移到Oracle數(shù)據(jù)庫(kù)的超詳細(xì)步驟和方法,需要的朋友可以參考下2023-11-11

