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