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

MySQL 遠程連接配置:賬號權限、Host 通配符與 DNS 反解析優化

     編輯:MySQL 資料庫相關知識

創建遠程訪問賬號(Navicat / 命令行)


-- 關鍵:Host 設置為 '%' 允許任意 IP
CREATE USER 'app_user'@'%' IDENTIFIED BY 'strong_password';

-- 授權:具體庫、具體權限
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'%';

-- 刷新生效
FLUSH PRIVILEGES;

Navicat 操作:用戶管理 → 新建用戶 → 主機填 % → 權限勾選 → 保存。

遠程連接慢:skip-name-resolve 核心優化

現象

客戶端連接等待 5-30 秒,查詢卻很快。

根因

MySQL 默認對連接 IP 執行 DNS 反向解析(IP → Hostname),再匹配 mysql.user.Host。DNS 失敗/超時導致連接阻塞。

解決


# /etc/my.cnf [mysqld] 區
[mysqld]
skip-name-resolve

重啟後:不再做 DNS 反解,直接用 IP 匹配 user.Host。需確保賬號 Host 為 % 或具體 IP,不能用域名。

防火牆與網絡檢查清單

  • 服務器防火牆放行 3306:firewall-cmd --add-port=3306/tcp --permanent
  • 雲廠商安全組/防火牆放行
  • bind-address = 0.0.0.0 (my.cnf) 監聽所有網卡
  • 客戶端測試:telnet host 3306 / nc -zv host 3306

安全加固建議

  1. 禁用 root 遠程:UPDATE mysql.user SET Host='localhost' WHERE User='root';
  2. 強密碼策略:VALIDATE_PASSWORD 插件
  3. SSL 加密傳輸:REQUIRE SSL 授權
  4. IP 白名單:賬號 Host 設具體 IP/網段,避免 %
  5. 審計日志:audit_log 插件記錄登入/操作
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved