萬盛學電腦網

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

Navicat 遠程連線 MySQL 10061/1045/2003 錯誤完整排查手冊

錯誤代碼速查

錯誤碼含義常見原因
10061 / 2003無法連接目標主機防火牆阻擋 3306、MySQL 未啟用遠程、bind-address 錯誤
1045存取被拒帳號/密碼錯誤、宿主限制(host 欄位)、權限未刷新

解決步驟(依序執行)

1. 開放 MySQL 遠程監聽

# Linux: 編輯 my.cnf
[mysqld]
bind-address = 0.0.0.0   # 監聽所有介面,預設 127.0.0.1 僅本地

# Windows: 編輯 my.ini 同理
# 重啟服務
systemctl restart mysqld   # 或 service mysql restart

2. 開放防火牆 3306 埠

# CentOS 7+ firewalld
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

# Ubuntu ufw
ufw allow 3306/tcp

# 雲廠商安全組/防火牆亦需放行

3. 建立/授權遠程帳號

-- 登入 MySQL
mysql -uroot -p

-- 建立帳號並授權(% 代表任意 IP)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

或修改既有 root 允許遠程(生產環境不建議):

UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

4. 驗證連線

# 客戶端測試
mysql -h 192.168.1.100 -u remote_user -p

# Navicat 設定:
# Host: 192.168.1.100  Port: 3306  User: remote_user  Password: ********

進階排查

  • SELinux / AppArmor:若 CentOS/Ubuntu 仍連不上,檢查 audit.log 或暫時設為 Permissive 測試。
  • skip-name-resolve:在 [mysqld] 加入此參數可避免 DNS 反解延遲導致連線超時。
  • SSL/TLS:生產環境建議啟用 SSL 連線,Navicat 勾選「Use SSL」並配置憑證。

安全最佳實踐

  1. 禁止 root 遠程登入,建立專用低權限帳號。
  2. 限制來源 IP:'user'@'192.168.1.%' 或具體 IP。
  3. 使用強密碼 + 定期輪換。
  4. 啟用 require_secure_transport=ON 強制加密傳輸。
copyright © 萬盛學電腦網 all rights reserved