Linux 安裝 MySQL 後需執行 mysql_install_db.sh 初始化系統表(mysql 資料庫)、建立預設表空間、產生 SSL 憑證等。Windows 安裝包預置已初始化的 data 目錄,但以下場景需手動初始化:
datadir)。# 1. 執行建表腳本
{ echo "USE mysql;"; cat mysql_system_tables.sql mysql_system_tables_data.sql; } | \
mysqld --bootstrap --console > /dev/null
# 2. 填充說明表
{ echo "USE mysql;"; cat fill_help_tables.sql; } | \
mysqld --bootstrap --console > /dev/null
關鍵點:mysqld --bootstrap 以單執行緒、無網路、無權限檢查模式啟動,直接從 stdin 讀取 SQL 執行,完成後自動退出。
my.ini),務必設定:[mysqld]
basedir = C:/Program Files/MySQL/MySQL Server 5.7
datadir = D:/MySQL/Data_Instance01
mkdir D:\MySQL\Data_Instance01
mkdir D:\MySQL\Data_Instance01\mysql
basedir\share 複製 mysql_system_tables.sql、mysql_system_tables_data.sql、fill_help_tables.sql 到暫存目錄(如 C:\Temp\init),**每個檔案開頭插入 USE mysql;**。C:\Progra~1\MySQL\MySQL57\bin\mysqld.exe --defaults-file=C:\Path\To\my.ini --bootstrap --console < C:\Temp\init\mysql_system_tables.sql
C:\Progra~1\MySQL\MySQL57\bin\mysqld.exe --defaults-file=C:\Path\To\my.ini --bootstrap --console < C:\Temp\init\mysql_system_tables_data.sql
C:\Progra~1\MySQL\MySQL57\bin\mysqld.exe --defaults-file=C:\Path\To\my.ini --bootstrap --console < C:\Temp\init\fill_help_tables.sql
# 安裝為服務(可選)
mysqld --install ManualInitInstance --defaults-file="C:\Path\To\my.ini"
net start ManualInitInstance
# 連線測試
mysql -u root -S D:\MySQL\Data_Instance01\mysql.sock # 或 -h 127.0.0.1 -P 3306
mysqladmin -u root shutdown
# 或
net stop ManualInitInstance
mysqld --initialize-insecure 或 --initialize(產生隨機 root 密碼寫入 .err 日誌)。