首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 基礎命令速成:連接、改密、用戶授權三大核心場景實戰

     編輯:MySQL 資料庫相關知識

一、連接 MySQL 服務器

# 格式:mysql -h主機 -u用戶 -p密碼
# 本地連接(進入 bin 目錄或配置 PATH)
mysql -u root -p

# 遠程連接
mysql -h 110.110.110.110 -u root -pabcd123

# 退出
exit

提示:-p 後無空格直接跟密碼,或留空交互式輸入更安全。

二、修改 root 密碼

# 首次設置密碼(root 初始無密)
mysqladmin -u root password 'ab12'

# 修改已有密碼
mysqladmin -u root -p'ab12' password 'djg345'

注意:mysqladmin 是客戶端工具,在系統 Shell 下執行,非 MySQL 客戶端內部命令。

三、用戶創建與授權(核心權限模型)

1. 通配符主機授權(高風險,慎用)

-- 允許任意主機訪問所有庫
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
FLUSH PRIVILEGES;

風險:密碼洩露導致全網可訪問,生產環境禁用。

2. 本地主機限制授權(推薦模式)

-- 僅允許本機訪問指定庫
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';

-- 移除密碼(極不推薦)
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';

3. MySQL 8.0+ 推薦語法(分離創建與授權)

CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'StrongPass@2024';
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app_user'@'192.168.1.%';
FLUSH PRIVILEGES;

四、權限體系速查

層級權限關鍵字典型場景
全局FILE, PROCESS, RELOAD, SHUTDOWN, SUPER管理員運維
庫級CREATE, DROP, ALTER, INDEX架構變更
表級SELECT, INSERT, UPDATE, DELETE業務增刪改查
列級SELECT(col), UPDATE(col)敏感字段隔離
特殊ALL PRIVILEGES, USAGE超管/僅登錄

五、安全加固清單

  1. 刪除匿名用戶:DROP USER ''@'%';
  2. 禁止 root 遠程登錄:DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1','::1');
  3. 移除 test 庫:DROP DATABASE test;
  4. 啟用 SSL 連接:配置 require_secure_transport=ON
  5. 定期審計權限:SHOW GRANTS FOR 'user'@'host';

六、常見錯誤與修正

錯誤現象原因修正
Access denied密碼錯誤/主機不匹配檢查 user 表 Host 欄位,確認客戶端 IP
Password hash outdated舊版認證插件ALTER USER 'u'@'h' IDENTIFIED WITH mysql_native_password BY 'pwd';
GRANT 失效未執行 FLUSH PRIVILEGESMySQL 8.0+ 通常自動生效,舊版需手動刷新

掌握「連接→改密→授權」鐵三角,即可構建基本安全的 MySQL 訪問體系。生產環境務必遵循最小權限原則,定期輪換憑證。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved