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

MySQL 開啟遠程連接權限配置全攻略 (含 Linux 綁定地址修改)

     編輯:MySQL 綜合教學

MySQL 開啟遠程連接權限配置全攻略 (含 Linux 綁定地址修改)

默認安裝的 MySQL 為安全起見,僅允許本地連接。開發、測試、生產部署時常需開放遠程訪問,需同時完成「賬號授權」與「服務綁定地址」兩項配置。

一、賬號授權:允許指定用戶從任意主機連接

-- 1. 登錄 MySQL
mysql -uroot -p

-- 2. 進入 mysql 系統庫
USE mysql;

-- 3. 授權:root 用戶允許任意主機 (%) 訪問,密碼強複雜度
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPassw0rd!@#';

-- 4. 立即生效
FLUSH PRIVILEGES;

-- 5. 驗證
SELECT User, Host FROM user WHERE User='root';
-- 應看到 root | %  行

二、Linux 服務端綁定地址修改 (關鍵步驟)

MySQL 默認 bind-address = 127.0.0.1 僅監聽回環接口,遠程連接會被拒絕。

# 1. 編輯配置文件 (路徑視發行版而定)
vim /etc/mysql/my.cnf          # Ubuntu/Debian
vim /etc/my.cnf                # CentOS/RHEL

# 2. 找到 [mysqld] 區塊,註釋或修改 bind-address
# bind-address = 127.0.0.1     # 註釋掉,監聽所有接口 (0.0.0.0)
# 或顯式指定內網 IP
bind-address = 192.168.1.100   # 僅監聽特定內網卡

# 3. 重啟服務生效
systemctl restart mysqld       # systemd
# 或 service mysqld restart    # SysVinit

三、防火牆放行 3306 端口

# firewalld (CentOS 7+)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

# iptables
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

# 云廠商安全組/防火牆亦需放行對應端口及源 IP 段

四、安全最佳實踐 (生產環境必讀)

  1. 禁用 root 遠程登錄:創建專用業務用戶,最小權限原則。
    CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'StrongPassw0rd!';
    GRANT SELECT,INSERT,UPDATE,DELETE ON app_db.* TO 'app_user'@'192.168.1.%';
    FLUSH PRIVILEGES;
  2. 綁定內網 IP:bind-address = 192.168.x.x,拒絕公網直連。
  3. 啟用 SSL 加密傳輸:配置 require_secure_transport=ON,強制 TLS 連接。
  4. 限制訪問來源:安全組/防火牆僅放行應用服務器 IP 段。
  5. 定期審計賬號:SELECT User, Host FROM mysql.user; 清理無用/弱密碼賬號。

五、常見連接失敗排查清單

現象可能原因排查命令
Can't connect to MySQL server (111/10061)服務未啟動 / bind-address 錯誤 / 防火牆攔截ss -lntp \| grep 3306 / telnet ip 3306
Access denied for user 'root'@'x.x.x.x'賬號無遠程授權 / 密碼錯誤 / Host 不匹配SELECT User, Host FROM mysql.user;
Host 'x.x.x.x' is not allowed to connectskip-name-resolve 導致反解失敗 / 賬號 Host 限制skip_name_resolve=ON / 用 IP 授權
SSL connection error客戶端/服務端 SSL 協議不匹配mysql --ssl-mode=DISABLED 測試

六、Windows 環境補充

Windows 版 MySQL 安裝向導勾選「Configure as Windows Service」且「Enable root access from remote machines」即自動完成授權與防火牆規則,無需手動修改 my.ini (默認綁定 0.0.0.0)。

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