使用 MySQL 免安裝壓縮包 (ZIP/解壓版) 時,雖然檔案部署完成,但 不會自動註冊為 Windows 服務,導致重開機後需手動啟動。本文提供完整的服務註冊、配置檔部署與驗證流程。
c:\mysql\bin\mysqld-nt -installmysqld-nt -remove,MySQL 5.0+ 通用 mysqld)。my.ini:my-medium.ini (或其他範本) 重命名為 my.ini,修改關鍵路徑後複製至以下任一優先讀取位置:C:\Windows\my.ini、C:\WinNT\my.ini、安裝目錄\my.ini (需啟動參數 --defaults-file 指定)。net start MySQL / net stop MySQL / net restart MySQL (或 sc start/stop MySQL)。my.ini 完整範本 (MySQL 5.0 精靈產生)[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
# 基礎網路與路徑
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
default-character-set=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 連線管理
max_connections=100
# 查詢快取 (視工作負載調整)
query_cache_size=0
# 資料表快取
table_cache=256
# 臨時表大小限制
tmp_table_size=5M
# 執行緒快取
thread_cache_size=8
# === MyISAM 專用 ===
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=212K
# === InnoDB 專用 ===
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=10M
innodb_thread_concurrency=8
# 註解:跳過 InnoDB 可節省資源
# skip-innodb
| 參數 | 建議調整方向 | 說明 |
|---|---|---|
basedir / datadir | 必須指向實際安裝與資料目錄 | 使用正斜線 / 或雙反斜線 \\ |
innodb_buffer_pool_size | 專用資料庫伺服器設為物理記憶體 70-80% | InnoDB 核心效能關鍵,32 位系統受限 2-3.5GB |
key_buffer_size | 不超過記憶體 30%,最小 8-64MB | MyISAM 索引快取,亦供內部臨時表使用 |
max_connections | 依應用併發度調整,配合 open-files-limit | 每連線消耗檔案描述符 |
query_cache_size | 唯讀多、資料少變動大則開啟 (如 64M);寫入頻繁設 0 | 避免快取失效開銷 |
innodb_flush_log_at_trx_commit | 1=完整 ACID (預設);0/2=高效能犧牲 1 秒內持久性 | 視業務容忍度決定 |
services.msc 確認 MySQL 服務狀態為「執行中」,啟動類型為「自動」。mysql -u root -p -e "SELECT VERSION();"主機名.err) 排查啟動失敗原因。PATH 環境變數只包含目標版本 bin 目錄,或用完整路徑呼叫 mysqld。mysqld --help --verbose | findstr /C:"my.ini" 查看實際讀取順序,必要時啟動參數加 --defaults-file="C:\Path\my.ini"。C:\Windows 需管理員權限;資料目錄需授予服務帳號 (預設 LocalSystem) 完整控制權。