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

修改 MySQL 監聽端口完整指南:配置文件、客戶端協調與多實例場景

     編輯:MySQL 資料庫相關知識

單實例修改端口 (標準流程)

# 1. 編輯配置文件
vi /etc/my.cnf          # Linux
notepad my.ini          # Windows

# 2. 在 [mysqld] 區段修改/新增
[mysqld]
port = 3306             # 改為目標端口,如 3307
# datadir, socket 等其他參數保持

# 3. 【關鍵】同步修改 [client] 區段,否則 mysql 命令列預設仍連 3306
[client]
port = 3307
socket = /var/lib/mysql/mysql.sock  # Linux 需同步 socket 路徑

# 4. 重啟服務
systemctl restart mysqld  # Linux
net stop mysql & net start mysql  # Windows

# 5. 驗證
mysql -u root -p -P 3307  # -P 大寫指定端口
SHOW VARIABLES LIKE 'port';

多實例場景:同一伺服器運行多個 MySQL

實例portsocketdatadir配置文件
實例 1 (主)3306/tmp/mysql_3306.sock/data/mysql_3306/etc/my_3306.cnf
實例 2 (備/測試)3307/tmp/mysql_3307.sock/data/mysql_3307/etc/my_3307.cnf

啟動命令:

mysqld --defaults-file=/etc/my_3306.cnf &
mysqld --defaults-file=/etc/my_3307.cnf &

客戶端連線:

mysql --defaults-file=/etc/my_3307.cnf -u root -p  # 自動讀取 port/socket
# 或顯式指定
mysql -h 127.0.0.1 -P 3307 -u root -p  # 注意:-h 127.0.0.1 強制 TCP,不走 socket

防火牆/安全組同步開放

# Linux firewalld
firewall-cmd --permanent --add-port=3307/tcp
firewall-cmd --reload

# iptables
iptables -A INPUT -p tcp --dport 3307 -j ACCEPT

# 雲廠商控制台:安全組入站規則加 3307

SELinux (RHEL/CentOS) 額外處理

# 允許 mysqld 綁定非標準端口
semanage port -a -t mysqld_port_t -p tcp 3307
# 或臨時關閉 SELinux 驗證
setenforce 0

常見避坑

  1. 只改 [mysqld] 不改 [client]:命令列工具 (mysql, mysqldump, mysqladmin) 預設讀 [client] port,連不上以為服務掛了。
  2. socket 衝突:多實例必須各自指定唯一 socket 路徑。
  3. 端口被佔用:netstat -tlnp | grep 3307 / ss -tlnp | grep 3307 檢查。
  4. Docker 容器映射:-p 3307:3306 宿主機 3307 映射容器內 3306,容器內配置無需改。

總結

修改 MySQL 端口 = 配置文件雙區段同步 + 服務重啟 + 防火牆/SELinux 放行 + 客戶端驗證。多實例核心在於端口、socket、datadir、配置文件四獨立,啟動時用 --defaults-file 隔離。

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