在 Linux 伺服器部署 MySQL 並允許遠端客戶端連線,是後端開發與運維的基礎作業。本文說明安裝流程、防火牆設定、帳號授權與驗證測試的完整步驟。
# 更新套件索引
sudo yum update -y
# 安裝 MySQL 社群版伺服器
sudo yum install mysql-community-server -y
# 啟動服務並設定開機自啟
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 查看初始暫時密碼 (MySQL 5.7+)
sudo grep 'temporary password' /var/log/mysqld.log
# 執行安全設定精靈
sudo mysql_secure_installation
依提示設定 root 密碼、移除匿名帳號、禁止 root 遠端登入、移除測試資料庫、重新載入權限表。
登入 MySQL:
mysql -u root -p
建立允許遠端連線的帳號(建議限制特定 IP 或網段):
-- 建立帳號並授權所有權限 (生產環境請依最小權限原則調整)
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
安全提醒:%'代表允許任意 IP,生產環境建議改為具體 IP (如'192.168.1.%') 或使用 VPN/SSH Tunnel 連線。
編輯設定檔 /etc/my.cnf (或 /etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
bind-address = 0.0.0.0 # 監聽所有介面,預設 127.0.0.1 僅本機
重啟服務生效:
sudo systemctl restart mysqld
# firewalld (CentOS 7+)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
# iptables
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo service iptables save
若主機在 AWS、GCP、Azure 等雲平台,另需在網路安全群組/防火牆規則開放 TCP 3306 給對應來源 IP。
在客戶端機器使用 MySQL Client 或圖形工具測試:
mysql -h -u app_user -p
成功連線即代表設定完成。
進階建議: 啟用 SSL 加密傳輸、設定 max_connections、配置慢查詢日誌、定期備份與監控告警。