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

MySQL 開啟遠程訪問完整配置指南(Ubuntu 環境)

     編輯:MySQL 綜合教學

前言

MySQL 預設僅允許本地連線,若需從其他機器遠程訪問,需修改綁定位址並授權遠程用戶。本文以 Ubuntu + MySQL 5 為例,說明完整開啟流程。

一、修改綁定位址 bind-address

編輯配置檔 /etc/mysql/my.cnf(或 /etc/mysql/mysql.conf.d/mysqld.cnf),找到 [mysqld] 區段,將 bind-address 設為伺服器實際 IP(而非 127.0.0.1):

[mysqld]
# 基本設定
default-character-set=utf8
default-storage-engine=INNODB
# 關鍵:改為本機真實 IP,例如 192.168.1.107
bind-address = 192.168.1.107
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking

修改後重啟服務:sudo systemctl restart mysql(或 service mysql restart)。

二、建立遠程訪問用戶並授權

以 root 登入 MySQL:

mysql -u root -p

執行授權指令(請替換資料庫名、用戶名、密碼):

-- 授權所有權限給 sonar 用戶,允許任意主機(%)連線
GRANT ALL ON sonardb.* TO 'sonar'@'%' IDENTIFIED BY '123456';
-- 同時授權本地連線(可選)
GRANT ALL ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
  • sonardb:目標資料庫名,* 表示所有表
  • sonar:自訂用戶名
  • 123456:密碼,請改為強密碼
  • % 通配符代表任意 IP

三、驗證遠程連線

在客戶端機器執行:

mysql -h 192.168.1.107 -u sonar -p

輸入密碼後若能進入,即代表遠程訪問已開啟。

四、常見問題排查

  • 防火牆:確保伺服器 3306 埠已開放(ufw allow 3306 或雲端安全組放行)。
  • SELinux/AppArmor:若啟用,可能阻擋 MySQL 綁定非本地 IP,需調整策略或暫時關閉測試。
  • 用戶主機不符:若仍報錯 Host 'x.x.x.x' is not allowed,請檢查 mysql.user 表中該用戶的 Host 欄位是否為 % 或對應客戶端 IP。

五、安全建議

  • 生產環境避免使用 %,改為具體應用伺服器 IP 段。
  • 啟用 SSL 連線加密傳輸。
  • 定期審核用戶權限,最小化授權原則。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved