萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 指定 IP 遠程訪問授權配置範例

MySQL 遠程連線授權:限制特定 IP 訪問的最佳實踐

為了資料庫安全,生產環境應避免使用 % 通配符開放所有 IP 連線。本文提供針對特定 IP 或主機授權的標準 SQL 範例。

場景一:允許任意主機連線(僅限測試環境)

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

風險提示:% 代表任意主機,生產環境嚴禁對 root 使用此授權。

場景二:限定單一 IP 遠程連線(生產推薦)

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

僅允許 218.12.50.60 這台機器以 root 身份連線,大幅降低暴力破解風險。

進階授權模式

  • 庫級授權:GRANT ALL ON db_name.* TO 'user'@'ip' ...
  • 表級授權:GRANT SELECT,INSERT ON db.tbl TO 'user'@'ip' ...
  • 撤銷授權:REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'ip';
  • 查看權限:SHOW GRANTS FOR 'user'@'ip';

常見問題排查

  1. 防火牆/安全組:確認 3306 端口對源 IP 放行
  2. bind-address:my.cnf 中 bind-address=0.0.0.0 或具體內網 IP,不可為 127.0.0.1
  3. skip-name-resolve:建議開啟避免 DNS 解析延遲
  4. 密碼插件:MySQL 8.0+ 預設 caching_sha2_password,舊版驅動需改用 mysql_native_password
copyright © 萬盛學電腦網 all rights reserved