1. MySQL 的預設連接埠是什麼?
MySQL 的連接埠號碼及其角色
MySQL 預設使用 3306 埠 進行通訊。連接埠號碼是用來區分網路上多個服務的編號,也是 TCP/IP 協定中的重要元素。透過不同的連接埠號碼,各種服務可以在同一台伺服器上同時運作。
在 MySQL 中,客戶端會透過 3306 埠連線至伺服器並進行資料庫操作。例如,MySQL Workbench 或其他資料庫工具都會使用此埠來存取資料庫。
為什麼使用 3306 埠?
3306 埠是 MySQL 的標準預設連接埠,在大多數安裝環境中都會使用。由於此埠為預設值,應用程式開發者無需進行額外設定即可連線資料庫,使用上非常方便。不過,因為安全風險較高,因此需要妥善管理。
2. 如何確認 MySQL 的連接埠
透過指令查詢
要確認 MySQL 伺服器目前使用的連接埠,可以輸入以下指令:
SHOW VARIABLES LIKE 'port';
執行後會顯示伺服器使用的連接埠號碼。通常是預設的 3306 埠,但也可能因設定而有所不同。
透過設定檔查詢
也可以透過檢視 my.cnf
(Windows 則為 my.ini
)設定檔來確認連接埠號碼。這些檔案通常位於以下位置:
- Linux:
/etc/mysql/my.cnf
- Windows:
C:ProgramDataMySQLMySQL Servermy.ini
在檔案中 port
參數所設定的值,就是 MySQL 使用的連接埠號碼。
[mysqld]
port=3306
透過檢視此檔案,即可確認目前的連接埠設定。
3. 如何更改 MySQL 的連接埠
更改連接埠的原因
更改 MySQL 預設連接埠有幾個原因。首先,為了安全性,因為攻擊者經常針對預設的 3306 埠發動攻擊,改用其他連接埠可以降低風險。此外,如果在同一台伺服器上運行多個 MySQL 實例,就必須使用不同的連接埠。
更改連接埠的步驟
要更改 MySQL 連接埠,需要編輯設定檔 my.cnf
。例如要改成 3307,可以這樣設定:
[mysqld]
port=3307
儲存設定後,重新啟動 MySQL 伺服器。在 Linux 中可使用以下指令:
sudo systemctl restart mysql
在 Windows 中則需要重新啟動 MySQL 服務。另外,請記得同步更新防火牆規則,以允許新的連接埠。

4. 安全性考量
開放連接埠的風險
如果將 MySQL 連接埠開放至外部,會增加安全風險。攻擊者可能透過連接埠掃描,針對 3306 埠嘗試未授權存取。因此需要實施額外的防護措施。
防火牆與存取限制
透過設定防火牆,僅允許特定 IP 位址連線,可有效防止非法存取。例如,在 Linux 使用 iptables
,僅允許指定 IP 存取 3306 埠:
sudo iptables -A INPUT -p tcp -s <允許的IP位址> --dport 3306 -j ACCEPT
另外,建議使用 SSH 隧道 加密 MySQL 連線,避免直接暴露連接埠。
導入 SSL/TLS
為了加密 MySQL 伺服器與客戶端之間的通訊,建議啟用 SSL/TLS。這樣可防止資料在網路傳輸過程中遭到竊聽或竄改。
5. 與 MySQL 連接埠相關的疑難排解
連接埠衝突
當 MySQL 使用的連接埠與其他服務衝突時,可能導致服務無法正常運作。這時需更改 MySQL 的連接埠,依照前述步驟進行修改即可。
外部連線問題
如果外部主機無法連線 MySQL,可能是防火牆或 MySQL 設定檔的問題。要允許外部連線,需要將 MySQL 設定檔中的 bind-address
改為 0.0.0.0
,允許所有來源連線。
[mysqld]
bind-address = 0.0.0.0
同時也需要在防火牆中開放對應的連接埠。

6. MySQL 連接埠的最佳實務
使用自訂連接埠
避免使用預設的 3306 埠,改用隨機高位連接埠,是常見的安全性最佳實務。這樣可以降低遭受連接埠掃描攻擊的機率,特別是在允許外部存取時。
監控日誌
定期監控 MySQL 的連線日誌與錯誤日誌,有助於及早偵測安全事件。一旦發現異常存取,應立即處理。日誌監控應作為日常安全維運的一部分。
7. 總結
本文介紹了 MySQL 連接埠的基本知識與安全性對策。雖然大多數情況下會使用預設的 3306 埠,但在必要時可進行修改,並搭配防火牆與 SSH 隧道強化安全性。同時也說明了外部連線常見的疑難排解方式。只要定期監控日誌並落實安全檢查,就能更安心地運行 MySQL 伺服器。