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

MySQL 遠程連線設定與帳號建立三步走:修改 bind-address、GRANT 授權、刷新權限

     編輯:MySQL 綜合教學

MySQL 遠程連線設定與帳號建立三步走:修改 bind-address、GRANT 授權、刷新權限

預設 MySQL 僅監聽 127.0.0.1,外部主機無法連線。本文提供最精簡的三步驟,快速開放遠程存取並建立專用帳號,附帶 GRANT 參數詳細說明與權限疊加機制。

步驟 1:修改設定檔開放網路監聽

sudo vi /etc/mysql/my.cnf
# 找到 [mysqld] 區塊,註解掉 bind-address
# bind-address = 127.0.0.1
# 儲存離開,重啟服務
sudo service mysql restart

註解後 MySQL 將監聽 0.0.0.0(所有網卡),允許外部連線。

步驟 2:建立遠程帳號並授權(GRANT 詳解)

GRANT ALL PRIVILEGES ON *.* TO 'gino'@'%' IDENTIFIED BY "123456";

參數拆解

子句含義
ALL PRIVILEGES所有權限(可改為 SELECT、INSERT 等單一權限)
ON *.*前 * 為資料庫,後 * 為資料表;*.* 表示所有庫所有表
TO 'gino'@'%'用戶 gino,@ 後為主機限制;% 表示任意主機(含遠程)
IDENTIFIED BY "123456"設定登入密碼
WITH GRANT OPTION允許該用戶將自己擁有的權限再授權給他人(建立管理帳號時加上)

主機匹配補充

  • 'user'@'192.168.1.%':限定網段
  • 'user'@'%.example.com':限定域名
  • 注意:部分版本 % 不包含 localhost,本地無法登入時請額外建立 'user'@'localhost'。

權限疊加機制

同一帳號重複執行 GRANT 會疊加權限,例如:

GRANT SELECT ON db.* TO 'u'@'%';
GRANT INSERT ON db.* TO 'u'@'%';  -- 現在 u 同時擁有 SELECT + INSERT

步驟 3:刷新權限使其立即生效

FLUSH PRIVILEGES;

特別是直接對權限表(user、db、host)做 UPDATE/DELETE 後,必須執行此指令。

服務管理速查

# Ubuntu/Debian systemd
sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl restart mysql

# 傳統 SysVinit
sudo service mysql start
sudo service mysql stop
sudo service mysql restart

驗證遠程連線

# 客戶端測試
mysql -h  -u gino -p123456

若報 Host 'x.x.x.x' is not allowed to connect,檢查:

  1. 防火牆是否放行 3306 埠
  2. 帳號 Host 欄位是否匹配客戶端 IP(含 % 版本差異)
  3. skip_networking 是否為 OFF

三步驟完成,即可安全開放 MySQL 遠程存取,配合最小權限原則建立專用業務帳號,滿足微服務、異地備份、BI 分析等多種場景需求。

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