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

Ubuntu MySQL 解除本機綁定限制:bind-address 註釋掉實現遠程訪問

     編輯:MySQL 資料庫相關知識

Ubuntu 預設 MySQL 安裝綁定 127.0.0.1,導致遠程連接被拒。一鍵解除:註釋 bind-address 並重啟服務。

問題現象

  • 本機 mysql -h 127.0.0.1 -u root -p 正常
  • 遠程 mysql -h server_ip -u root -p 報錯 ERROR 2003 (HY000): Can't connect to MySQL server
  • 用戶已授權 GRANT ALL ON *.* TO 'user'@'%'、防火牆已放行 3306

根因


# /etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1   # 僅監聽回環地址

解決步驟

  1. 編輯配置:nano /etc/mysql/my.cnf(或 /etc/mysql/mysql.conf.d/mysqld.cnf)
  2. 找到 bind-address = 127.0.0.1
  3. 註釋掉:# bind-address = 127.0.0.1
  4. 保存退出:Ctrl+O → Enter → Ctrl+X
  5. 重啟服務:systemctl restart mysql / service mysql restart

驗證生效


# 查看監聽端口
netstat -tlnp | grep 3306
ss -tlnp | grep 3306
# 應顯示 0.0.0.0:3306 或 :::3306(監聽所有介面)

# 遠程測試
mysql -h server_ip -u remote_user -p

安全加固(必做)

Docker 容器場景


# 容器內同樣需註釋 bind-address
# 或啟動時覆蓋:
docker run -d --name mysql \
  -e MYSQL_ROOT_PASSWORD=xxx \
  -p 3306:3306 \
  -v /host/my.cnf:/etc/mysql/my.cnf \
  mysql:8.0

「註釋 bind-address + 防火牆限源 + 用戶限 IP」三重防護,安全開放遠程訪問。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
措施命令/配置
防火牆限制來源 IPufw allow from 10.0.0.0/8 to any port 3306
用戶僅允許特定 IPCREATE USER 'app'@'10.0.%' IDENTIFIED BY 'strongpass';
啟用 SSL 連接require_secure_transport=ON + 憑證配置
修改默認端口port = 33067(配置文件 + 防火牆)
關閉不需要的用戶DROP USER ''@'localhost'; DROP USER 'root'@'%';