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

MySQL 遠程連線被拒解決方案:修改 Host 欄位與 GRANT 授權兩大法

     編輯:MySQL 資料庫相關知識

遇到 ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server 錯誤,表示用戶帳號的 Host 欄位限制為 localhost,不允許遠程連線。提供兩種標準解決方案。

方法一:修改 mysql.user 表 Host 欄位(直接法)

mysql -u root -p
USE mysql;
UPDATE user SET Host = '%' WHERE User = 'root';
FLUSH PRIVILEGES;
SELECT Host, User FROM user;
  • % 代表允許任意主機連線
  • 生產環境建議限制為具體 IP 或網段(如 192.168.1.%)
  • 修改後必須 FLUSH PRIVILEGES 重載權限

方法二:GRANT 授權建立遠程用戶(推薦法)

1. 允許任意主機連線

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

2. 僅允許特定 IP 連線

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

三、安全性最佳實踐

  1. 避免使用 root 遠程連線,建立專用應用帳號
  2. 最小權限原則:僅授予必要資料庫與操作(SELECT, INSERT, UPDATE, DELETE)
  3. 生產環境啟用 SSL 連線:REQUIRE SSL
  4. 定期審核 mysql.user 表,移除無用帳號與過寬 Host
  5. 配合防火牆限制 3306 埠僅對應用伺服器開放

四、驗證連線

# 從遠程主機測試
mysql -h 目標資料庫IP -u myuser -p
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved