MySQL 早期預設儲存引擎為 MyISAM,不支援交易。若需 ACID 交易特性,必須啟用 InnoDB(或 BDB)。本文詳細記錄在 Windows 環境下安裝 MySQL Max 版、切換服務、配置 my.ini 參數、建立資料/日誌目錄,並驗證安裝成功的完整流程。
雙擊安裝檔,依預設選項安裝至 C:\mysql 或自訂路徑。
安裝完成後,啟動 WinMySQLadmin 設定初始密碼,隨後關閉。以管理員身分開啟 CMD,執行:
cd C:\mysql\bin
mysqld-nt --remove
mysqld-max-nt --install
說明:移除預設 mysqld-nt 服務,安裝支援 InnoDB 的 mysqld-max-nt 服務。
mkdir C:\ibdata
mkdir C:\iblogs
目錄名稱、磁碟代號可自行調整,但後續配置檔必須一致。
打開 C:\Windows\my.ini(或 C:\WINNT\my.ini),在 [mysqld] 區段新增:
[mysqld]
# InnoDB 資料檔:兩個 2GB 檔案(視磁碟空間調整,建議總和佔可用空間 50%-80%)
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M
innodb_data_home_dir = C:/ibdata
# 日誌群組
innodb_log_group_home_dir = C:/iblogs
innodb_log_files_in_group = 3
innodb_log_file_size = 30M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_log_arch_dir = C:/iblogs
innodb_log_archive = 0
# 記憶體與並發
innodb_buffer_pool_size = 80M
innodb_additional_mem_pool_size = 10M
innodb_file_io_threads = 4
innodb_lock_wait_timeout = 50
# 鏡像日誌群組(可選)
innodb_mirrored_log_groups = 1
| 參數 | 建議值 | 說明 |
|---|---|---|
| innodb_buffer_pool_size | 實體記憶體 50%-70% | 最關鍵參數,快取資料與索引;專用 DB 伺服器可設 70% 以上 |
| innodb_log_file_size | 64M-512M | 較大值減少 checkpoint 頻率,但崩潰恢復較久;總大小 = size × files_in_group |
| innodb_flush_log_at_trx_commit | 1(最安全) | 1=每次 commit 寫磁碟;2=寫 OS 快取;0=每秒寫一次。平衡效能與資料安全 |
| innodb_file_io_threads | 4-16 | Windows 下建議 4;Linux 可用 AIO 設更高 |
| innodb_lock_wait_timeout | 50-100 | 交易等待鎖定秒數,超時自動回滾 |
MySQL 服務(或 net start mysql)SHOW VARIABLES LIKE 'have_%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_bdb | YES |
| have_innodb | YES |
| have_isam | YES |
| have_raid | NO |
| have_openssl | YES |
+---------------+-------+
若出現 have_innodb = YES 即代表安裝成功。
C:\ibdata、C:\iblogs 目錄權限(MySQL 服務帳號需具寫入權限);確認 my.ini 路徑正確(正斜線/雙反斜線)。innodb_data_file_path 空間不足:依實際磁碟調整大小,例如 ibdata1:500M;ibdata2:500M。C:\iblogs\.err ,打開查看具體錯誤訊息。my.cnf(Linux 風格)而非 my.ini,Windows 版 MySQL 不會讀取,務必用 my.ini。目前 MySQL 5.7/8.0 已預設內建 InnoDB 並為預設引擎,無需安裝 Max 版。新專案建議:
innodb_dedicated_server=ON 自動調整緩衝池、日誌大小innodb_file_per_table=ON 獨立表空間,利於管理與回收空間早期啟用 InnoDB 需手動切換 Max 版服務、規劃資料/日誌目錄、調整大量參數。現代版本大幅簡化流程,但理解傳統配置參數含義,對效能調優、故障排查仍極有幫助。生產環境務必依硬體規格微調 innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_log_at_trx_commit 三大核心參數。