安全合規、多實例部署、避開掃描攻擊等場景需修改 MySQL 預設埠 3306。Windows 下僅需修改配置檔並重啟服務,本文提供圖文步驟。
services.msc),找到 MySQL (或 MySQL57/MySQL80),右鍵「停止」。
圖 1:停止 MySQL 服務
my.ini (典型路徑:C:\Program Files\MySQL\MySQL Server 5.6\my.ini 或 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini)。port=3306,修改為目標埠 (如 3307、4306)。
圖 2:修改 my.ini 埠號
[mysqld]
port = 3307 # 修改此處
# 其他設定...
net start mysql。mysql -h 127.0.0.1 -P 3307 -u root -p。同一主機跑多個 MySQL 實例,需分別修改:
port (如 3306、3307、3308)socket (如 mysql_3306.sock、mysql_3307.sock)datadir (獨立資料目錄)log-error、pid-file、slow_query_log_file 等日誌路徑mysqld_multi 或 systemd 多服務單元管理。# Windows 防火牆
netsh advfirewall firewall add rule name="MySQL 3307" dir=in action=allow protocol=TCP localport=3307
# 雲廠商安全組 (阿里云/騰訊云/AWS)
# 入站規則:TCP 3307 來源 0.0.0.0/0 (或限定應用伺服器 CIDR)
| 客戶端 | 指定埠方式 |
|---|---|
| mysql 命令列 | mysql -h 127.0.0.1 -P 3307 -u root -p |
| MySQL Workbench | Connection 設定 → Port 欄位填 3307 |
| JDBC URL | jdbc:mysql://127.0.0.1:3307/db?useSSL=false |
| Python PyMySQL | pymysql.connect(host='127.0.0.1', port=3307, ...) |
| PHP PDO | new PDO('mysql:host=127.0.0.1;port=3307;dbname=db', ...) |
-P (大寫 P)。error.log,常見埠衝突 (netstat -ano | findstr 3307)、權限不足、配置檔語法錯誤。CHANGE MASTER TO MASTER_PORT=3307; 並 START SLAVE;。