cd D:\mysql-5.7.40-winx64\bin # 初始化 data 目錄並產生隨機 root 密碼 (輸出至 .err 日誌) mysqld --initialize --console # 或不產生隨機密碼 (root 密碼為空,不推薦) # mysqld --initialize-insecure --console
執行後會在解壓目錄建立 `data` 資料夾,控制台顯示隨機密碼 (如 `[Note] A temporary password is generated for root@localhost: xYz123!@#`),請務必記下。
mysqld --console
# 以管理員身分執行 CMD/PowerShell mysqld --install MySQL57 # 服務名稱可自訂 net start MySQL57 # 停止/移除服務 net stop MySQL57 mysqld --remove MySQL57
mysql -u root -p # 輸入隨機密碼登入後 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!'; FLUSH PRIVILEGES;
連線測試
mysql -h 127.0.0.1 -u root -pNewPass123! -e "SHOW DATABASES;"常用配置 (my.ini)
在解壓根目錄建立 `my.ini` (服務啟動會自動讀取):
[mysqld] basedir=D:/mysql-5.7.40-winx64 datadir=D:/mysql-5.7.40-winx64/data port=3306 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci default-storage-engine=INNODB sql_mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO max_connections=200 innodb_buffer_pool_size=512M # 視實體記憶體調整 (建議 50-70%) [mysql] default-character-set=utf8mb4 [client] port=3306 default-character-set=utf8mb4多實例並行 (不同 Port)
常見問題
| 問題 | 解決 |
|---|---|
| 啟動報錯 "The server quit without updating PID file" | 檢查 `datadir` 權限、錯誤日誌 `.err`、端口衝突、配置檔路徑 |
| 中文亂碼 | 配置 `character-set-server=utf8mb4`、連線字串加 `characterEncoding=utf8` |
| 無法遠端連線 | 建立 `'user'@'%'`、防火牆開 3306、`bind-address=0.0.0.0` |
| 服務名稱衝突 | `mysqld --install <自訂服務名>` |