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

Windows 多實例 MySQL 部署指南:獨立配置、獨立服務、互不干擾

     編輯:MySQL 綜合教學

核心原則

每個實例擁有獨立的 basedir、datadir、port、socket、my.ini、Windows 服務名,進程隔離、配置隔離、數據隔離。

部署步驟(以實例 1:3306、實例 2:3307 為例)

1. 準備目錄結構


D:\MySQL\
├── 5.7.44\          # 實例 1 程式碼(或解壓包)
│   ├── bin\
│   ├── data\        # 實例 1 數據
│   └── my.ini       # 實例 1 配置
└── 8.0.36\          # 實例 2 程式碼(可不同版本)
    ├── bin\
    ├── data\        # 實例 2 數據
    └── my.ini       # 實例 2 配置

2. 編寫獨立 my.ini


# 實例 1: D:\MySQL\5.7.44\my.ini
[mysqld]
basedir=D:/MySQL/5.7.44
datadir=D:/MySQL/5.7.44/data
port=3306
socket=mysql57.sock
server-id=1
log-error=D:/MySQL/5.7.44/data/error.log
character-set-server=utf8mb4

[client]
port=3306
socket=mysql57.sock

# 實例 2: D:\MySQL\8.0.36\my.ini
[mysqld]
basedir=D:/MySQL/8.0.36
datadir=D:/MySQL/8.0.36/data
port=3307
socket=mysql80.sock
server-id=2
log-error=D:/MySQL/8.0.36/data/error.log
character-set-server=utf8mb4

[client]
port=3307
socket=mysql80.sock

3. 初始化數據目錄


# 以管理員身份 CMD
cd /d D:\MySQL\5.7.44\bin
mysqld --initialize-insecure --basedir=D:/MySQL/5.7.44 --datadir=D:/MySQL/5.7.44/data

cd /d D:\MySQL\8.0.36\bin
mysqld --initialize-insecure --basedir=D:/MySQL/8.0.36 --datadir=D:/MySQL/8.0.36/data

4. 註冊獨立 Windows 服務


# 實例 1
cd /d D:\MySQL\5.7.44\bin
mysqld --install MySQL57 --defaults-file="D:\MySQL\5.7.44\my.ini"

# 實例 2
cd /d D:\MySQL\8.0.36\bin
mysqld --install MySQL80 --defaults-file="D:\MySQL\8.0.36\my.ini"

5. 啟動/驗證


net start MySQL57
net start MySQL80

# 連線測試
mysql -u root -P 3306 --protocol=tcp -e "SELECT VERSION(), @@PORT;"
mysql -u root -P 3307 --protocol=tcp -e "SELECT VERSION(), @@PORT;"

避坑指南

  1. 服務名唯一:--install MySQL57 / MySQL80,不可重複
  2. --defaults-file 必須指定:服務啟動參數寫入註冊表,避免讀取錯誤配置
  3. socket 檔案名不同:雖然 Windows 用命名管道,但 socket 參數仍需區分,防客戶端連線混淆
  4. 防火牆分別放行:3306、3307 兩個埠
  5. 註冊表檢查:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL57\ImagePath 應包含 --defaults-file=...
  6. 1067 錯誤:多半是 basedir/datadir 路徑錯或 my.ini 讀取失敗,查看事件查看器 → Application → MySQL 來源

升級/維護優勢

  • 版本隔離:可同時運行 5.7 舊應用與 8.0 新應用
  • 獨立備份:mysqldump -P 3306 / -P 3307 互不干擾
  • 獨立調優:innodb_buffer_pool_size 按實例記憶體分配
  • 滾動升級:先升級從實例,驗證無誤再升主實例

總結

Windows 多實例關鍵在於**目錄隔離、配置隔離、服務隔離**。按上述標準化流程部署,避免「複製目錄+修改註冊表」的舊式黑盒操作,實現可維護、可監控、可擴展的多實例架構。

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