MySQL 免安裝版(ZIP 包)無需安裝向導、不污染註冊表、支援多版本並存、便於攜帶與自動化部署,是開發、測試、輕量級生產環境的首選。本文以 MySQL 5.7.11 x64 為例,記錄全流程標準化部署步驟。
mysql-5.7.11-winx64.zipD:\mysql。bin、docs、include、lib、share 等資料夾。my.ini複製解壓目錄下的 my-default.ini 重命名為 my.ini,內容如下:
[mysqld]
# 基礎路徑(正斜線或雙反斜線均可)
basedir=D:/mysql
datadir=D:/mysql/data
port=3306
# server_id = 1 # 主從複制時啟用
# 字元集
character_set_server=utf8
# SQL 模式(5.7 預設嚴格模式,視應用相容性調整)
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 可選:跳過權限驗證(僅初次密碼重置時臨時開啟)
# skip-grant-tables
注意:datadir 目錄 無需手動建立,後續初始化會自動生成。
bin 目錄:cd D:\mysql\binsc query MySQL
sc delete MySQL
mysqld --install MySQL --defaults-file="D:\mysql\my.ini"
成功會提示 Service successfully installed.,且在 services.msc 中可見「MySQL」服務。
MySQL 5.7+ 不再支援無參數 mysqld --initialize 自動建立 data 目錄,必須顯式執行:
mysqld --initialize --console
--console 將臨時 root 密碼直接輸出到控制台(務必截圖保存)。D:\mysql\data 目錄自動生成,包含 ibdata1、mysql 系統庫等。--initialize-insecure。
net start MySQL
# 或
sc start MySQL
首次登入需使用初始化輸出的臨時密碼:
mysql -u root -p
# 輸入臨時密碼
MySQL 5.7 將 password 欄位改為 authentication_string,且需符合密碼策略:
-- 方式 1:ALTER USER(推薦)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
-- 方式 2:SET PASSWORD
SET PASSWORD FOR 'root'@'localhost' = 'NewStrongPass123!';
-- 方式 3:UPDATE mysql.user(舊版兼容,需 FLUSH PRIVILEGES)
UPDATE mysql.user SET authentication_string=PASSWORD('NewStrongPass123!') WHERE user='root' AND host='localhost';
FLUSH PRIVILEGES;
| 錯誤現象 | 原因 | 解決方案 |
|---|---|---|
ERROR 1820 (HY000): You must reset your password... | 臨時密碼過期/必須修改 | 執行上述 ALTER USER 修改密碼 |
ERROR 1862 (HY000): Your password has expired | 密碼過期策略觸發 | SET PASSWORD = PASSWORD('newpass'); 或調整 default_password_lifetime=0 |
Can't connect to MySQL server on 'localhost' (10061) | 服務未啟動/端口被佔用 | net start MySQL;檢查 3306 端口衝突 |
The server quit without updating PID file | datadir 權限/殘留進程/配置錯誤 | 刪除 data 重新 --initialize;檢查 my.ini 路徑拼寫 |
mysql -u root -p -e "SELECT VERSION(); SHOW DATABASES;"
# 輸出版本號與系統庫列表即為成功
GRANT SELECT,INSERT,UPDATE ON db.* TO 'app'@'%' IDENTIFIED BY 'strongpass';skip-grant-tables(若曾開啟)。bind_address=127.0.0.1 或具體內網 IP,禁止公網直連。log-bin)。免安裝版部署核心在於:正確配置 basedir/datadir → 註冊服務指定 --defaults-file → --initialize --console 獲取臨時密碼 → 修改強密碼。掌握此流程,即可在任何 Windows 機器上 5 分鐘內交付一個乾淨、可控的 MySQL 實例。