首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Ubuntu 系統開放 MySQL 遠程訪問完整配置教程

     編輯:MySQL 綜合教學

Ubuntu 系統開放 MySQL 遠程訪問完整配置教程

預設情況下,Ubuntu 上的 MySQL 僅允許本地連接(綁定 127.0.0.1)。本文詳細說明如何修改配置開放遠程訪問,包含網路綁定調整、用戶授權、防火牆配置及常見問題排查,適用於 Ubuntu 12.04 至最新 LTS 版本。

一、修改 MySQL 網路綁定配置

1. 編輯配置檔

sudo vim /etc/mysql/my.cnf
# 或 Ubuntu 18.04+ 可能路徑
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

2. 修改 bind-address 參數

# 找到以下行
bind-address = 127.0.0.1

# 修改為以下任一選項:
# 選項 A:允許所有 IP 訪問(生產環境需配合防火牆)
bind-address = 0.0.0.0

# 選項 B:指定具體 IP(更安全,如伺服器內網 IP 192.168.1.100)
bind-address = 192.168.1.100

3. 重啟 MySQL 服務生效

# Ubuntu 16.04+ (systemd)
sudo systemctl restart mysql

# Ubuntu 14.04 或傳統方式
sudo /etc/init.d/mysql restart
# 或
sudo service mysql restart

二、配置資料庫用戶遠程授權

登入 MySQL 控制台執行授權語句:

mysql -uroot -p

-- 方案 1:允許 root 從任意 IP 連接(不建議生產環境使用)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_strong_password' WITH GRANT OPTION;

-- 方案 2:建立專用遠程用戶(推薦生產環境)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON your_db.* TO 'remote_user'@'%';
-- 或限制特定 IP
CREATE USER 'remote_user'@'192.168.1.%' IDENTIFIED BY 'strong_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON your_db.* TO 'remote_user'@'192.168.1.%';

-- 必須執行使權限生效
FLUSH PRIVILEGES;

三、Ubuntu 防火牆配置 (UFW)

# 檢查防火牆狀態
sudo ufw status

# 允許 MySQL 預設端口 3306
sudo ufw allow 3306/tcp
# 或限制特定 IP 段
sudo ufw allow from 192.168.1.0/24 to any port 3306

# 啟用防火牆(若未啟用)
sudo ufw enable

四、Windows 客戶端連接測試

使用 MySQL Workbench、Navicat、HeidiSQL 或命令列工具:

# 命令列測試
mysql -h ubuntu_server_ip -u remote_user -p

# 連接參數說明:
# -h : 目標伺服器 IP 或主機名
# -u : 遠程授權的用戶名
# -p : 提示輸入密碼
# -P : 指定端口(非 3306 時需指定)

五、常見問題與解決方案

問題現象可能原因解決方法
ERROR 1130: Host 'x.x.x.x' is not allowed to connect用戶 host 欄位不匹配檢查 user 表 host 值,確認 '%' 或具體 IP 授權
ERROR 2003: Can't connect to MySQL server (10060)網路不通/防火牆阻擋ping 測試連通性、檢查 ufw/iptables、雲廠商安全組
ERROR 2002: Can't connect via socket客戶端嘗試本地 socket 連接強制使用 TCP:mysql -h 127.0.0.1 -u root -p
Authentication plugin 'caching_sha2_password' not supportedMySQL 8.0 新認證插件建立用戶指定插件:IDENTIFIED WITH mysql_native_password BY 'pwd'

六、安全性最佳實踐建議

  • 禁用 root 遠程登入: 僅允許本地 root,遠程使用專用低權限帳號
  • 啟用 SSL 連接: 配置 require_secure_transport=ON 強制加密傳輸
  • 限制訪問來源: bind-address 綁定內網 IP + 防火牆白名單 + 用戶 host 限制
  • 定期審計: 使用 SHOW GRANTS 定期檢查遠程用戶權限
  • 修改預設端口: 非必要不使用 3306,降低自動掃描攻擊風險

完成上述配置後,您的 Ubuntu MySQL 即可安全地接受遠程連接。建議在生產環境部署前,先在測試環境完整驗證連接、權限、防火牆等所有環節。

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