MySQL 官方提供的 ZIP 免安裝版(無需 MSI 向導)適合開發測試、綠色部署、多版本共存、CI/CD 臨時實例。本文記錄 Windows 10/Server 2019 環境下的極速部署流程。
mysql-8.0.x-winx64.zip(或 5.7 版本)。D:\mysql-8.0\。路徑勿包含中文/空格。在解壓根目錄新建 my.ini(編碼 UTF-8),核心內容:
[mysqld]
# 基礎路徑(正斜槓或雙反斜槓)
basedir = D:/mysql-8.0
datadir = D:/mysql-8.0/data
port = 3306
bind-address = 0.0.0.0
# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
# 最大連接
max_connections = 500
# InnoDB 基礎
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
innodb_flush_log_at_trx_commit = 2
# 禁用查詢緩存(8.0 已移除,兼容寫法)
# query_cache_type = 0
# 慢查詢
slow_query_log = 1
slow_query_log_file = D:/mysql-8.0/logs/slow.log
long_query_time = 2
# 二進制日誌(可選)
# log-bin = mysql-bin
# binlog_format = ROW
# expire_logs_days = 7
關鍵:手動創建 data 和 logs 目錄,確保當前用戶有寫入權限。
D:\mysql-8.0\bin。mysqld --initialize-insecure --console
# --initialize-insecure:root 密碼為空(開發環境)
# --initialize:生成隨機密碼(生產環境,需查看 .err 日誌)
# --console:輸出至控制台
初始化成功會在 data 目錄生成 ibdata1、ib_logfile*、mysql/ 系統庫等文件。
# 安裝服務(服務名可自定義,便於多版本共存)
mysqld --install MySQL80
# 啟動服務
net start MySQL80
# 或
sc start MySQL80
# 驗證
mysql -u root -p
# 空密碼直接回車(若用 --initialize-insecure)
-- 登錄後修改密碼(MySQL 8.0 語法)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPass123!';
-- 或使用 mysqladmin
mysqladmin -u root -p password 'StrongPass123!'
-- 安全初始化向導(推薦)
mysql_secure_installation
# 依次:設置密碼、移除匿名用戶、禁止 root 遠程登錄、刪除 test 庫、重載權限
# 登錄測試
mysql -u root -p -e "SELECT VERSION(); SHOW DATABASES;"
# 停止/重啟/移除服務
net stop MySQL80
net start MySQL80
mysqld --remove MySQL80
# 連接參數示例
mysql -h 127.0.0.1 -P 3306 -u root -p db_name
D:\mysql-5.7\、D:\mysql-8.0\。my.ini 指定 port:3306 / 3307 / 3308。mysqld --install MySQL57、mysqld --install MySQL80。| 現象 | 原因與解決 |
|---|---|
| 服務啟動失敗,事件查看器報 1067 | 檢查 data 目錄權限、my.ini 路徑拼寫、端口佔用 netstat -ano | findstr 3306 |
| 中文亂碼 | 配置 character-set-server=utf8mb4,客戶端連接字符串加 characterEncoding=utf8 |
| 初始化報錯 "data directory not empty" | 刪除 data 目錄下所有文件重新初始化 |
| 忘記 root 密碼 | 停止服務 → mysqld --skip-grant-tables → 登錄無密碼 → ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass'; → 正常重啟 |
| 防火牆阻擋遠程連接 | 入站規則開放 3306 TCP,或關閉防火牆測試 |