MySQL(Windows)压缩包安装与配置指南(超详细版)

在 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

注意:路径尽量简洁,不要包含中文或特殊字符,避免后续服务启动异常。


二、配置环境变量

为了在任意目录下直接使用 mysqlmysqld 命令,需要将 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 服务监听端口,默认 3306
  • basedir: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 配置必须正确,尤其是 basedirdatadir
  • 初始化后必须从 .err 文件获取 root 临时密码
  • 注册服务时可能存在旧服务残留,需要 sc delete MySQL 清理
  • 启动失败优先查看 .err 日志定位原因

完成上述步骤后,MySQL 就能稳定以 Windows 服务方式运行。

后续建议搭配 MySQL Workbench 或 Navicat 进行可视化管理,效率会更高。

相关推荐
涛涛讲AI2 小时前
Django Admin模块的都有哪些表以及之间的关系
数据库·django·sqlite
青衫码上行2 小时前
Redis持久化 (快速入门)
数据库·redis·缓存
数据知道2 小时前
PostgreSQL:详解 PostGIS 地理信息数据处理
数据库·postgresql
小草儿7992 小时前
pg18权限篇章
数据库
剑之所向2 小时前
Mysql参数化
数据库·mysql·oracle
_千思_2 小时前
【小白说】数据库系统概念 3
数据库
海兰3 小时前
elasticsearch学习之基本概念-向量数据库
数据库·学习·elasticsearch
014-code3 小时前
Spring Boot 集成 Neo4j 图数据库实战教程
java·数据库·neo4j