Windows 版 MySQL 安裝包內含預初始化的 data 目錄,但遇到資料檔損壞、需建立多實例、或想要全乾淨環境時,必須手動初始化。Linux 有 mysql_install_db.sh,Windows 需自行拆解腳本邏輯執行。
mysql_install_db.sh 本質是將三個 SQL 腳本管道餵給 mysqld --bootstrap:
mysql_system_tables.sql — 建立系統表結構mysql_system_tables_data.sql — 填充初始資料(root 帳號、權限等)fill_help_tables.sql — 填充說明資料表basedir(MySQL 安裝根目錄)與 datadir(資料目錄,如 D:\MySQL\data)。datadir 及 datadir\mysql 存在,不存在則手動建立。share 目錄複製上述三檔至臨時目錄(如 C:\tmp),每檔案首行插入 USE mysql;。C:\MySQL\bin\mysqld.exe --bootstrap --console < C:\tmp\mysql_system_tables.sql
C:\MySQL\bin\mysqld.exe --bootstrap --console < C:\tmp\mysql_system_tables_data.sql
C:\MySQL\bin\mysqld.exe --bootstrap --console < C:\tmp\fill_help_tables.sqlC:\MySQL\bin\mysqld.exe # 啟動
C:\MySQL\bin\mysqladmin.exe -uroot shutdown # 停止
C:\MySQL\bin\mysql.exe -uroot # 連線測試--bootstrap 僅支援單執行緒,不可並行。Can't create test file,檢查 datadir 寫入權限。--initialize/--initialize-insecure 取代 --bootstrap,生成隨機 root 密碼存於 .err 日誌。datadir、port、socket、pid-file。掌握手動初始化,即可在 Windows 靈活建立、遷移、重建 MySQL 實例,不再受限於安裝程式預設行為。