在 Windows 以免安裝包(或綠色版)部署 MySQL,需手動配置環境變數、註冊服務、初始化密碼。本文提供最小化、可復現的標準化步驟。
D:\mysql\mysql56(自定)。bin\、data\(初始為空)、my.ini(自建)。# 系統變數
MYSQL_HOME = D:\mysql\mysql56
Path 追加 %MYSQL_HOME%\bin
打開新 CMD 驗證:mysql --version 應顯示版本號。
[client]
port=3306
default-character-set=utf8
[mysqld]
basedir = D:\mysql\mysql56
datadir = D:\mysql\mysql56\data
port = 3306
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
Server=D:\mysql\mysql56\bin\mysqld.exe
cd /d %MYSQL_HOME%\bin
mysqld --initialize-insecure --console
生成 data\ 目錄與隨機 root 密碼(insecure 模式無密碼)。
mysqld --install MySQL --defaults-file="D:\mysql\mysql56\my.ini"
成功提示:Service successfully installed.
net start MySQL
提示 MySQL 服務已經啟動成功。
mysql -uroot -p
# 密碼為空直接 Enter
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
FLUSH PRIVILEGES;
# 1. 停止服務
net stop MySQL
# 2. 跳過授權表啟動(新 CMD 視窗,保持運行)
mysqld --defaults-file="D:\mysql\mysql56\my.ini" --console --skip-grant-tables
# 3. 另開 CMD 免密登入
mysql -uroot mysql
UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE user='root';
FLUSH PRIVILEGES;
QUIT
# 4. 關閉 --skip-grant-tables 視窗,正常重啟服務
net start MySQL
mysql -uroot -p
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
data\ 目錄非空導致 --initialize 失敗 → 刪除或改名後重試。port、socket、service name、datadir。遵循上述流程,可在 Windows 上建立乾淨、可維護的 MySQL 實例。