早期在 Windows 2000 上部署 MySQL (3.22/3.23 版本) 常遇到路徑、升級、服務啟動等問題。本文整理實戰常見情境與解法,供維護舊系統參考。注意:現代部署請使用 MySQL 8.0+ 官方安裝程式,本文僅具歷史參考價值。
情境: 安裝至 D:\Win32App\MySQL,修改 my.cnf 所有路徑仍無法啟動服務。
解法: 啟動時必須明確指定 --basedir 參數:
D:\Win32App\MySQL\bin\mysqld --basedir D:\Win32App\MySQL net start mysql
原理: Windows 服務啟動時不會自動讀取 my.cnf 中的 basedir,必須在命令列或服務啟動參數中傳遞。
錯誤: 執行 mysql-shareware --install 提示 "failed to service"
解法: 徹底清除舊版殘留:
net stop mysql 或 mysqladmin -u root -p shutdownHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL 及相關項目關鍵: 未停止服務直接刪除檔案會導致系統殘留服務記錄,後續安裝極易失敗。
Windows 版 MySQL 資料預設位於安裝目錄下的 data 子目錄 (如 D:\Win32App\MySQL\data),非 Linux 的 /var/lib/mysql。可在 my.cnf 中以 datadir 指定。
歷史版本可從 MySQL Archives 取得。生產環境請勿使用舊版本,存在已知安全漏洞 (CVE-2000-xxxx 等) 且無修補支援。
C:\Program Files\MySQL\MySQL Server 8.0\ (預設)Data Directory 至非系統碟 (如 D:\MySQLData)my.ini (非 my.cnf):
[mysqld] basedir=C:/Program Files/MySQL/MySQL Server 8.0/ datadir=D:/MySQLData/ port=3306 character_set_server=utf8mb4 innodb_buffer_pool_size=1G # 視實體記憶體 50-70% 設定
net start mysql80 / net stop mysql80 (服務名稱視版本而定)--skip-grant-tables 啟動:mysqld --skip-grant-tablesmysql -u rootFLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
Windows Server 2003 個人工作站安裝與優化全紀錄:OEM BIOS 修改、驅動策略與服務精簡
Windows 2000 系統檔案檢查器 (SFC) 修復 DLL 檔案遺失或錯誤指令大全
Word 2003 進階玩法:內嵌影片、播放 Flash、雙向翻譯與註釋
Windows HPC Server 2008 叢集使用者管理權威指南:管理員與使用者角色、Active Directory 整合與作業範本權限
Windows Server 2008 共享存取加速秘籍:啟用磁碟寫入快取與高階效能模式實測
Windows Server 2003 系統優化六大核心設定速查表