首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 遠程訪問授權三大方案:改表法、GRANT 法、命令行直授法

     編輯:MySQL 綜合教學

新裝 MySQL 默認僅允許本地連接,遠程訪問需顯式授權。本文提供三種成熟方案,覆蓋「全網訪問」與「指定 IP 訪問」兩大場景。

方案一:改表法(直觀、永久)


mysql> USE mysql;
mysql> UPDATE user SET host = '%' WHERE user = 'root';
mysql> SELECT host, user FROM user;  -- 驗證
mysql> FLUSH PRIVILEGES;

將 host 從 localhost 改為 %(通配符),允許任意主機連接。

方案二:GRANT 授權法(推薦、粒度可控)

場景 A:Root 全網訪問


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'cx' WITH GRANT OPTION;
FLUSH PRIVILEGES;

場景 B:指定用戶 + 指定 IP


GRANT ALL PRIVILEGES ON *.* TO 'test'@'10.40.207.17' IDENTIFIED BY 'cx' WITH GRANT OPTION;
FLUSH PRIVILEGES;

方案三:命令行直授法(無需進入交互模式)


mysql -h localhost -u root
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT

關鍵差異與建議

方案優點缺點適用場景
改表法簡單直接繞過權限系統,易留隱患緊急臨時調試
GRANT 法標準、支援細粒度權限、可撤銷語法稍繁生產環境標準做法
命令行直授適合腳本自動化密碼明文風險Ansible/Shell 批量部署

安全加固清單

  1. 生產環境禁用 Root 遠程登入,創建專用業務賬號
  2. 授權按最小權限原則:GRANT SELECT,INSERT,UPDATE ON db.* TO 'app'@'10.0.0.%'
  3. 配合防火牆限制 3306 端口來源 IP
  4. 啟用 SSL 連接:REQUIRE SSL
  5. 定期 SHOW GRANTS 審計權限

驗證連通性


# 客戶端測試
mysql -h 192.168.1.108 -u root -p
# 或
telnet 192.168.1.108 3306
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved