在 Windows 环境下安装 MySQL,除了使用官方安装器之外,更常见也更灵活的方式是使用 zip 压缩包解压安装。这种方式的优点是目录结构清晰、迁移方便、不会写入过多系统组件,适合学习、开发环境以及需要多版本共存的场景。
本文记录一次完整的 MySQL 8.0.28(winx64)压缩包安装流程,包括环境变量配置、my.ini 编写、初始化、注册系统服务、启动、登录与修改 root 密码,并附带常见报错处理方法。
一、安装包准备
下载地址:https://dev.mysql.com/downloads/mysql/
我比较喜欢用zip

本次使用版本为:
- MySQL Community Server 8.0.28
- Windows x64 压缩包版(zip)
下载完成后解压到目标目录:
D:\mysql\mysql-8.0.28-winx64
注意:路径尽量简洁,不要包含中文或特殊字符,避免后续服务启动异常。
二、配置环境变量
为了在任意目录下直接使用 mysql、mysqld 命令,需要将 MySQL 的 bin 目录加入系统环境变量。
将以下路径添加到系统变量 Path 中:
D:\mysql\mysql-8.0.28-winx64\bin
配置完成后建议重新打开 CMD 或 PowerShell,使环境变量生效。
三、创建配置文件 my.ini
在 MySQL 安装目录下创建 my.ini 文件:
D:\mysql\mysql-8.0.28-winx64\my.ini
写入以下内容:
ini
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
basedir = D:\mysql\mysql-8.0.28-winx64
datadir = D:\mysql\mysql-8.0.28-winx64\data
max_connections=20
character-set-server=utf8
default-storage-engine=INNODB
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
参数说明:
port:MySQL 服务监听端口,默认 3306basedir:MySQL 安装目录datadir:数据文件存放目录(初始化后会自动生成 data 文件夹)character-set-server:服务端默认字符集default-storage-engine:默认存储引擎(MySQL 8 推荐 InnoDB)sql_mode:SQL 模式控制,建议启用严格模式避免脏数据
编码注意事项
my.ini 文件建议保存为 ANSI 或 UTF-8(无 BOM),部分情况下编码错误会导致 MySQL 无法启动或读取配置失败。
四、初始化 MySQL 数据库
初始化会生成 MySQL 系统表、数据目录以及 root 的初始临时密码。
以管理员身份打开 CMD,执行:
bash
mysqld --initialize
如果初始化成功,会在 data 目录生成一批文件,同时生成 .err 错误日志文件。
下图这种输出一般表示初始化正常执行:

data 目录生成内容示例:

五、获取 root 初始临时密码
初始化完成后,MySQL 会在 data 目录生成一个 .err 文件,例如:
DESKTOP-xxx.err
打开该 .err 文件,搜索关键字:
temporary password
即可找到 root 初始临时密码,例如:
/MaQuy.7,WFV
下图红框位置即为初始密码:

另一张示例图:

该密码用于首次登录,登录后必须修改,否则后续操作会受限制。
六、安装 MySQL Windows 服务
为了方便开机启动与后台运行,通常会把 MySQL 注册成 Windows 服务。
进入 MySQL 根目录:
bash
D:
cd D:\mysql\mysql-8.0.28-winx64
执行安装服务命令:
bash
mysqld --install
执行成功后会创建默认名为 MySQL 的系统服务。
七、服务已存在报错处理
在安装服务时,可能会遇到如下提示:
text
The service already exists!
The current server installed: D:\mysql\mysql-8.0.28-winx64\bin\mysqld MySQL
示例截图如下:

该问题通常是系统中已经注册过 MySQL 服务(可能是旧版本残留),需要删除旧服务后重新安装。
执行删除命令:
bash
sc delete MySQL
输出如下说明删除成功:
text
[SC] DeleteService 成功
示例截图:

如果执行 net stop MySQL 提示服务名无效,这是因为服务已经删除,不属于异常:

删除完成后重新执行:
bash
mysqld --install
即可完成注册。
八、启动 MySQL 服务
服务注册完成后启动 MySQL:
bash
net start mysql
启动成功示例:

如果启动失败,建议立即检查 data 目录下 .err 日志文件,里面会给出具体错误原因(端口占用、配置路径错误、权限不足等)。
九、登录 MySQL
启动成功后,使用 root 登录:
bash
mysql -u root -p
随后输入 .err 文件中查到的临时密码即可进入 MySQL。
十、修改 root 密码
MySQL 8.0 默认启用较强的密码校验策略,首次登录后必须修改密码。
执行以下 SQL:
sql
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
修改成功示例:

如果希望刷新权限(部分情况下建议执行):
sql
FLUSH PRIVILEGES;
十一、验证 MySQL 是否安装成功
1. 查看版本号
bash
mysql -V
输出示例:
mysql Ver 8.0.28 for Win64 on x86_64 (MySQL Community Server - GPL)
2. 检查端口监听状态
bash
netstat -ano | findstr :3306
如果看到 LISTENING 状态,说明 MySQL 服务已经正常监听端口。
十二、常见问题与排查建议
1. mysqld 初始化失败
通常原因包括:
my.ini配置错误(basedir/datadir 写错)data目录已有旧数据导致冲突- 没有管理员权限
建议:
- 删除
data文件夹重新初始化 - 检查 my.ini 路径是否正确
- 使用管理员权限执行 CMD
2. 服务启动失败
大概率原因:
- 3306 端口被占用(可能有旧 MySQL、MariaDB、XAMPP 等)
my.ini配置读取失败(编码或格式问题)- data 目录权限不足
解决方法:
- 使用
netstat -ano | findstr :3306检查端口占用 - 检查
.err日志文件具体报错 - 确认 my.ini 保存格式正确(ANSI 或 UTF-8 无 BOM)
3. root 密码错误或无法登录
建议确认:
- 临时密码是否复制完整(注意符号)
- 是否使用正确的
.err文件(多次初始化会生成不同密码)
如果确实忘记密码,需要通过跳过权限表方式重置 root 密码(该内容属于扩展,可单独写一篇文章整理)。
十三、总结
MySQL 8.0 的 zip 安装方式本质上流程并不复杂,关键点集中在以下几处:
my.ini配置必须正确,尤其是basedir和datadir- 初始化后必须从
.err文件获取 root 临时密码 - 注册服务时可能存在旧服务残留,需要
sc delete MySQL清理 - 启动失败优先查看
.err日志定位原因
完成上述步骤后,MySQL 就能稳定以 Windows 服务方式运行。
后续建议搭配 MySQL Workbench 或 Navicat 进行可视化管理,效率会更高。