Windows 通过 ZIP 包安装 MySQL 服务

2026年5月27日 · 数据库3 分钟

前言

在 Windows 上安装 MySQL,官方提供了两种方式:MSI 安装包 和 ZIP 压缩包。MSI 虽然图形化操作简单,但安装过程不够透明,卸载残留多,且不方便管理多个版本。ZIP 包安装则更加灵活——解压即用、便于版本切换、完全掌握目录结构。本文将以 MySQL 8.4 为例,带你完整走一遍 ZIP 包安装的全流程。

一、下载 MySQL

访问 MySQL 官方下载页,选择 Windows (x86, 64-bit), ZIP Archive 版本下载。

选择版本

建议选择 MySQL 8.0 或 MySQL 8.4 LTS 版本。8.0 是目前最广泛的稳定版,8.4 是较新的 LTS 长期支持版。如果用于生产环境,优先选择 LTS 版本。

下载完成后得到一个 .zip 文件,文件名类似 mysql-8.4.0-winx64.zip。

二、解压与目录结构

将 ZIP 包解压到目标安装目录,例如 D:\dev\mysql-8.4.0。

解压后的目录结构大致如下:

D:\dev\mysql-8.4.0\
├── bin\              # 可执行文件(mysqld, mysql, mysqladmin 等)
├── docs\             # 文档
├── include\          # 头文件
├── lib\              # 库文件
├── share\            # 错误信息、字符集等共享文件
└── README            # 说明文件

关于解压路径

MySQL 对路径中的中文字符和空格很敏感。请确保解压路径不包含中文和空格,否则后续可能出现莫名其妙的问题。

为了方便管理,可以在 MySQL 根目录下创建 data 文件夹用于存放数据库文件,以及 my.ini 配置文件。也可以让后续的初始化命令自动生成 data 目录。

三、创建配置文件 my.ini

MySQL 默认会按照顺序查找配置文件,ZIP 包安装需要手动创建。在 MySQL 根目录下新建 my.ini 文件,写入以下基础配置:

[client]
# 客户端默认连接端口
port=3306
default-character-set=utf8mb4

[mysql]
# mysql 命令行工具的默认字符集
default-character-set=utf8mb4

[mysqld]
# MySQL 服务端口
port=3306

# 安装目录(根据实际路径修改)
basedir=D:/dev/mysql-8.4.0

# 数据存放目录
datadir=D:/dev/mysql-8.4.0/data

# 允许最大连接数
max_connections=200

# 默认字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 默认存储引擎
default-storage-engine=INNODB

# 跳过 DNS 反向解析,加快连接速度
skip-name-resolve

# 默认身份验证插件(MySQL 8.0 默认使用 caching_sha2_password)
# 如果需要兼容旧版客户端,可改为 mysql_native_password
# default_authentication_plugin=caching_sha2_password

路径注意事项

basedir 和 datadir 的路径分隔符请使用正斜杠 / 或双反斜杠 \\,不要使用单反斜杠 \,否则会被识别为转义字符导致配置失效。

几个关键配置项说明:

配置项作用
basedirMySQL 安装根目录
datadir数据库文件存放目录
port服务监听端口,默认 3306
skip-name-resolve禁用 DNS 反向解析,可显著提升连接速度
character-set-server服务器默认字符集,推荐 utf8mb4

更多的配置项可以根据实际硬件环境按需添加,如 innodb_buffer_pool_size、tmp_table_size 等性能相关参数。

四、初始化数据目录

配置文件准备好后,以管理员身份打开 PowerShell 或 CMD,进入 MySQL 的 bin 目录:

cd D:\dev\mysql-8.4.0\bin

执行初始化命令:

.\mysqld --initialize --console

务必以管理员身份运行

初始化命令必须在管理员权限下执行,否则可能因权限不足导致初始化失败。在 Windows 搜索框中输入 PowerShell,右键选择"以管理员身份运行"即可。

参数说明:

  • --initialize:初始化数据目录,创建系统表,生成一个临时的 root 密码
  • --console:将日志输出到控制台,方便查看临时密码

执行成功后,控制台会输出类似以下的内容:

[Server] A temporary password is generated for root@localhost: xxxxxxxx

请立即复制保存这个临时密码,后续登录需要用到。如果忘记保存,可以删除 data 目录重新初始化。

初始化完成后,MySQL 根目录下会多出一个 data 文件夹,里面存放了 mysql、performance_schema、sys 等系统数据库。

五、安装 Windows 服务

初始化完成后,将 MySQL 注册为 Windows 系统服务,这样 MySQL 可以开机自启,也方便通过 net 命令管理。

仍在管理员 PowerShell 中执行:

.\mysqld --install MySQL

如果看到 Service successfully installed. 的提示,说明服务注册成功。

MySQL 是服务名称,可以自定义,例如 MySQL84。服务名称在后面启动、停止、删除服务时都会用到。

服务已存在怎么办?

如果之前安装过 MySQL,再次安装时可能提示服务已存在。可以先删除旧服务再重新安装:

.\mysqld --remove MySQL

然后再执行安装命令即可。

六、启动 MySQL 服务

服务安装后,可以通过以下两种方式启动:

方式一:使用 net 命令

net start MySQL

方式二:使用 MySQL 自带的命令

.\mysqld --console

方式二会保持前台运行,适合调试。正常使用建议用方式一。

启动后验证服务是否正常运行:

.\mysqladmin -u root -p ping

输入临时密码后,如果返回 mysqld is alive,说明服务运行正常。

七、登录并修改 root 密码

服务启动后,使用临时密码登录 MySQL:

.\mysql -u root -p

输入刚才保存的临时密码(粘贴时可能不可见,这是正常现象),成功进入 MySQL 命令行交互界面。

进入后第一件事就是修改 root 密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

密码策略默认要求包含大小写字母、数字和特殊字符,长度至少 8 位。如果希望使用简单密码,可以先查看并调整密码策略:

-- 查看当前密码策略
SHOW VARIABLES LIKE 'validate_password%';

-- 降低密码强度要求
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 6;

-- 然后修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

生产环境安全提醒

降低密码强度仅建议在本地开发环境使用。生产环境务必保持高强度密码,并考虑创建专用的应用账户而非直接使用 root。

创建远程登录用户(可选)

默认情况下 root 只能从本机(localhost)登录。如果需要远程连接,可以新建一个用户或修改 root 的 host:

-- 创建新用户并允许任意 IP 连接
CREATE USER 'myuser'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

% 表示允许任意 IP 连接。也可以指定具体 IP,如 '192.168.1.%'。

八、配置环境变量(推荐)

将 MySQL 的 bin 目录添加到系统环境变量中,这样可以在任意路径下直接使用 mysql、mysqldump 等命令。

  1. 右键 此电脑 → 属性 → 高级系统设置 → 环境变量
  2. 在 系统变量 中找到 Path 变量,点击编辑
  3. 新建一行,添加 MySQL 的 bin 目录路径,例如 D:\dev\mysql-8.4.0\bin
  4. 确定保存

配置完成后,重新打开 PowerShell,直接输入 mysql -V 查看版本信息,验证配置是否生效:

mysql -V

如果正确显示 MySQL 版本号,说明环境变量配置成功。

九、管理 MySQL 服务

日常维护常用的命令汇总:

操作命令
启动服务net start MySQL
停止服务net stop MySQL
重启服务net stop MySQL && net start MySQL
查看服务状态sc query MySQL
删除服务.\mysqld --remove MySQL
登录 MySQLmysql -u root -p

十、常见问题与排错

1. 初始化时提示 “缺少 MSVCR120.dll” 或类似错误

MySQL 依赖 Visual C++ 运行时库。下载安装 Microsoft Visual C++ Redistributable 即可解决。

2. 服务启动失败,查看错误日志

错误日志位于 data 目录下,文件名通常是 计算机名.err。打开查看最后的几行错误信息,是定位问题的最直接手段。

也可以通过命令查看:

.\mysqld --console

前台运行会将错误信息直接打印到控制台。

3. 端口 3306 被占用

检查端口占用情况:

netstat -ano | findstr :3306

找到占用进程的 PID,在任务管理器中结束该进程,或者在 my.ini 中修改 port 为其他端口(如 3307)。

4. 忘记临时密码

删除 data 目录下的所有文件(注意不是删除 data 目录本身),然后重新执行初始化命令:

.\mysqld --initialize --console

会生成一个新的临时密码。

5. 中文乱码

确保以下三处都设置为 utf8mb4:

  • my.ini 中的 character-set-server=utf8mb4
  • 连接时指定字符集:mysql -u root -p --default-character-set=utf8mb4
  • 创建数据库时指定:CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

十一、总结

通过 ZIP 包安装 MySQL 虽然步骤稍多,但胜在灵活可控:目录结构一目了然,配置文件完全掌握在自己手中,切换版本只需要修改环境变量。这套方法也适用于在 Windows Server 上部署生产环境。

最后的两点建议:

  • 保留安装包:把 ZIP 包存档好,未来重新安装或迁移时直接复用
  • 做好备份:定期备份 data 目录下的业务数据库,尤其是 ibdata1 和对应的 .ibd 文件

以上就是 Windows 通过 ZIP 包安装 MySQL 的完整流程。如果你在安装过程中遇到问题,欢迎在评论区留言讨论。