首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows MySQL 5.7 ZIP 免安裝版部署實戰:my.ini 配置、服務註冊、初始化、密碼重置避坑全記錄

     編輯:MySQL 資料庫相關知識

MySQL 5.7 ZIP 免安裝版適合多版本共存、綠色部署。本文記錄在 E:\DBFiles\mysql-5.7.15-winx64 實際部署過程中遇到的初始化、服務註冊、skip-grant-tables 密碼重置、ALTER USER vs UPDATE user 等坑點與解法。

1. 目錄結構與 my.ini

basedir = "E:/DBFiles/mysql-5.7.15-winx64/mysql-5.7.15-winx64"
datadir = "E:/DBFiles/mysql-5.7.15-winx64/mysql-5.7.15-winx64/data/"
tmpdir  = "E:/DBFiles/mysql-5.7.15-winx64/mysql-5.7.15-winx64/data/"
socket  = "E:/DBFiles/mysql-5.7.15-winx64/mysql-5.7.15-winx64/data/mysql.sock"
log-error = "E:/DBFiles/mysql-5.7.15-winx64/mysql-5.7.15-winx64/data/mysql_error.log"
port = 3306
character-set-server = utf8mb4
sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 其餘緩衝池、日誌、執行緒參數見正文完整配置

2. 初始化資料目錄(5.7 必須)

cd E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64\bin
mysqld --initialize
# 生成 data 目錄、隨機 root 密碼寫入 .err 日誌

服務安裝成功

3. 註冊 Windows 服務(管理員 CMD)

mysqld install MySQL --defaults-file="E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64\my.ini"

4. 啟動服務與首次登入

net start MySQL
# 提示輸入密碼,但無密碼可輸入(隨機密碼未知)

要求輸入密碼

5. 密碼重置避坑記

步驟 1:啟用 skip-grant-tables

# my.ini [mysqld] 加入
skip-grant-tables=1
net stop MySQL && net start MySQL

免密登入成功

步驟 2:修改密碼(UPDATE user 有效,ALTER USER 無效)

mysql -uroot
USE mysql;
UPDATE user SET authentication_string=PASSWORD('root') WHERE User='root';
FLUSH PRIVILEGES;

UPDATE 密碼成功

UPDATE 密碼成功2

關鍵坑:skip-grant-tables 模式下,ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' 會報 The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,**必須用 UPDATE user 表**。

步驟 3:移除 skip-grant-tables,驗證新密碼

# 註釋 skip-grant-tables=1
net stop MySQL && net start MySQL
mysql -uroot -proot
# 登入成功

步驟 4:切換資料庫再次要求修改密碼(密碼過期機制)

USE mysql;
# ERROR 1820 (HY000): You must reset your password using ALTER USER statement
# 此時 ALTER USER 生效
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

ALTER USER 成功

6. HeidiSQL 連線驗證

HeidiSQL 連線成功

7. 總結避坑清單

  1. 5.7 必須 mysqld --initialize,無 data 目錄無法啟動
  2. 服務註冊務必指定 --defaults-file,否則讀取預設路徑失敗
  3. skip-grant-tables 下**只能 UPDATE user 表**,ALTER USER 無效
  4. 首次登入後 USE mysql 觸發密碼過期,**再執行一次 ALTER USER** 徹底解決
  5. 生產環境建議:validate_password 插件、強制複雜度、定期輪換

免安裝版部署看似簡單,細節決定成敗,記錄下來下次不踩坑。

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