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

Debian 6 配置 MySQL 允許遠程連接:修改綁定地址與授權雙管齊下

     編輯:MySQL 資料庫相關知識

環境

  • 系統:Debian 6
  • MySQL 版本:5.1/5.5 (apt 默認)

第一步:安裝 MySQL 服務端

apt-get update
apt-get install mysql-server-5.5
# 安裝過程會提示設置 root 密碼

第二步:修改配置文件開啟網絡監聽

默認配置綁定 `127.0.0.1` 僅允許本地連接。

vim /etc/mysql/my.cnf

# 找到 [mysqld] 區塊下的 bind-address
# bind-address = 127.0.0.1   <-- 註釋掉此行 或改為 0.0.0.0

# 推薦:註釋掉 (監聽所有接口)
#bind-address = 127.0.0.1

# 或顯式指定
# bind-address = 0.0.0.0

第三步:重啟服務生效

/etc/init.d/mysql restart
# 或
service mysql restart

第四步:創建遠程訪問用戶並授權 (關鍵)

僅修改綁定地址不夠,MySQL 賬號體系基於 `用戶@主機`,必須顯式授權。

mysql -u root -p
# 登錄後執行:

-- 方案 A:允許指定 IP 遠程訪問 (推薦,較安全)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'192.168.1.100' IDENTIFIED BY 'StrongPass123!';
FLUSH PRIVILEGES;

-- 方案 B:允許任意 IP 遠程訪問 (僅測試環境使用,生產嚴禁)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!';
FLUSH PRIVILEGES;

-- 方案 C:修改現有 root 允許遠程 (極不推薦,極高風險)
-- UPDATE user SET Host='%' WHERE User='root' AND Host='localhost';
-- FLUSH PRIVILEGES;

第五步:驗證遠程連接

# 客戶機執行
mysql -h  -u remote_user -p
# 輸入密碼,連接成功即配置生效

常見問題排查

現象可能原因解決
連接超時 / Can't connect防火牆攔截 3306 端口`iptables -A INPUT -p tcp --dport 3306 -j ACCEPT` 或雲服務商安全組放行
Access denied for user用戶@主機 不匹配檢查 `SELECT User, Host FROM mysql.user;` 確認授權主機 `%` 或具體 IP
修改 my.cnf 後無效配置節點錯誤 / 未重啟確保在 `[mysqld]` 區塊,並執行 `service mysql restart`
SSL 連接報錯高版本默認要求 SSL客戶端加 `--skip-ssl` 或服務端配置 `require_secure_transport=OFF`

安全加固建議 (生產環境必做)

  1. 禁止 Root 遠程登錄:僅允許應用賬號特定 IP 訪問。
  2. 強密碼策略:`validate_password` 插件強制複雜度。
  3. 防火牆/安全組限制源 IP:僅允許應用服務器 IP 段訪問 3306。
  4. 啟用 SSL 加密傳輸:配置 CA/Server/Client 證書。
  5. 定期審計權限:`SHOW GRANTS FOR 'user'@'host';`。

總結

Debian 下開啟 MySQL 遠程連接:**配置文件解除綁定限制 + 賬號授權匹配遠程主機 + 防火牆放行端口** 三步缺一不可。生產環境務必遵循最小權限原則,杜絕 `root@%`。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved