首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows 下 MySQL 免安裝版(綠色版)完整部署指南:從解壓到 Root 密碼重置

     編輯:MySQL 綜合教學

前言:為什麼選擇免安裝版?

MySQL 免安裝版(ZIP 包)無需安裝向導、不污染註冊表、支援多版本並存、便於攜帶與自動化部署,是開發、測試、輕量級生產環境的首選。本文以 MySQL 5.7.11 x64 為例,記錄全流程標準化部署步驟。

一、下載與解壓

  1. 官網下載:mysql-5.7.11-winx64.zip
  2. 解壓至目標目錄,例如 D:\mysql。
  3. 目錄結構應包含 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 目錄 無需手動建立,後續初始化會自動生成。

三、註冊 Windows 服務

  1. 以管理員身分開啟 CMD / PowerShell。
  2. 切換至 bin 目錄:cd D:\mysql\bin
  3. 檢查並刪除同名舊服務(避免衝突):
    sc query MySQL
    sc delete MySQL
  4. 註冊新服務(指定配置檔路徑):
    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
# 輸入臨時密碼

六、修改 Root 密碼(5.7+ 語法變更)

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 filedatadir 權限/殘留進程/配置錯誤刪除 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)。
  • 設定 Windows 防火牆入站規則僅允許應用伺服器 IP 訪問 3306。

結語

免安裝版部署核心在於:正確配置 basedir/datadir → 註冊服務指定 --defaults-file → --initialize --console 獲取臨時密碼 → 修改強密碼。掌握此流程,即可在任何 Windows 機器上 5 分鐘內交付一個乾淨、可控的 MySQL 實例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved