從登錄實例到賬號落地,本文提供標準化、可直接用於生產環境的操作指南,涵蓋用戶創建、權限模型、資源配額及驗證驗證全鏈路。
# 以 root 登錄(生產建議使用專用運維賬號) mysql -u root -p # 輸入 root 密碼後進入 mysql> 提示符
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
localhost:僅允許本機 Unix socket 連接'%' 或具體 IP/網段IDENTIFIED WITH caching_sha2_password BY 'pwd'SELECT host, user, authentication_string FROM mysql.user WHERE user='myuser';
確認 host、user、加密密碼欄位正確寫入。
| 權限 | 說明 |
|---|---|
| ALL PRIVILEGES | 除 GRANT OPTION 外所有權限 |
| SELECT / INSERT / UPDATE / DELETE | 數據讀寫基礎權限 |
| CREATE / ALTER / DROP | 結構變更權限 |
| INDEX | 索引管理 |
| CREATE VIEW / SHOW VIEW | 視圖操作 |
| LOCK TABLES | 表鎖定 |
| RELOAD / SHUTDOWN / PROCESS / SUPER | 管理類高危權限,嚴格限制 |
-- 僅讀權限於特定庫 GRANT SELECT ON mydb.* TO 'myuser'@'localhost'; -- 讀寫權限於特定表 GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.orders TO 'myuser'@'localhost'; -- 所有權限於所有庫(極度謹慎) GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'localhost'; -- 帶授權選項(允許該用戶再授權他人) GRANT ALL ON mydb.* TO 'myuser'@'localhost' WITH GRANT OPTION;
GRANT USAGE ON *.* TO 'myuser'@'localhost'
WITH MAX_QUERIES_PER_HOUR 1000
MAX_UPDATES_PER_HOUR 500
MAX_CONNECTIONS_PER_HOUR 100
MAX_USER_CONNECTIONS 10;
MAX_QUERIES_PER_HOUR:每小時最大查詢次數MAX_UPDATES_PER_HOUR:每小時最大更新次數MAX_CONNECTIONS_PER_HOUR:每小時最大新連接數MAX_USER_CONNECTIONS:同時在線連接上限(受全局 max_user_connections 制約)SHOW GRANTS FOR 'myuser'@'localhost';
輸出包含 GRANT USAGE ... WITH MAX_... 即資源限制生效。
FLUSH PRIVILEGES;
MySQL 8.0+ 非必要(隱式提交),但保留習慣兼容舊版本。
-- 撤銷特定權限 REVOKE INSERT ON mydb.* FROM 'myuser'@'localhost'; -- 刪除用戶(同時清理權限記錄) DROP USER 'myuser'@'localhost';
'user'@'%' 全通配,綁定具體 IP/網段REQUIRE SSL / REQUIRE X509validate_password 插件強制複雜度、過期輪換audit_log 記錄關鍵操作遵循標準化流程,配合最小權限原則,可構建安全可控的 MySQL 訪問治理體系。