2026年5月27日 · 数据库3 分钟
在 Windows 上安装 MySQL,官方提供了两种方式:MSI 安装包 和 ZIP 压缩包。MSI 虽然图形化操作简单,但安装过程不够透明,卸载残留多,且不方便管理多个版本。ZIP 包安装则更加灵活——解压即用、便于版本切换、完全掌握目录结构。本文将以 MySQL 8.4 为例,带你完整走一遍 ZIP 包安装的全流程。
访问 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 目录。
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 的路径分隔符请使用正斜杠 / 或双反斜杠 \\,不要使用单反斜杠 \,否则会被识别为转义字符导致配置失效。
几个关键配置项说明:
| 配置项 | 作用 |
|---|---|
basedir | MySQL 安装根目录 |
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 等系统数据库。
初始化完成后,将 MySQL 注册为 Windows 系统服务,这样 MySQL 可以开机自启,也方便通过 net 命令管理。
仍在管理员 PowerShell 中执行:
.\mysqld --install MySQL如果看到 Service successfully installed. 的提示,说明服务注册成功。
MySQL 是服务名称,可以自定义,例如 MySQL84。服务名称在后面启动、停止、删除服务时都会用到。
服务已存在怎么办?
如果之前安装过 MySQL,再次安装时可能提示服务已存在。可以先删除旧服务再重新安装:
.\mysqld --remove MySQL然后再执行安装命令即可。
服务安装后,可以通过以下两种方式启动:
方式一:使用 net 命令
net start MySQL方式二:使用 MySQL 自带的命令
.\mysqld --console方式二会保持前台运行,适合调试。正常使用建议用方式一。
启动后验证服务是否正常运行:
.\mysqladmin -u root -p ping输入临时密码后,如果返回 mysqld is alive,说明服务运行正常。
服务启动后,使用临时密码登录 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 等命令。
Path 变量,点击编辑bin 目录路径,例如 D:\dev\mysql-8.4.0\bin配置完成后,重新打开 PowerShell,直接输入 mysql -V 查看版本信息,验证配置是否生效:
mysql -V如果正确显示 MySQL 版本号,说明环境变量配置成功。
日常维护常用的命令汇总:
| 操作 | 命令 |
|---|---|
| 启动服务 | net start MySQL |
| 停止服务 | net stop MySQL |
| 重启服务 | net stop MySQL && net start MySQL |
| 查看服务状态 | sc query MySQL |
| 删除服务 | .\mysqld --remove MySQL |
| 登录 MySQL | mysql -u root -p |
MySQL 依赖 Visual C++ 运行时库。下载安装 Microsoft Visual C++ Redistributable 即可解决。
错误日志位于 data 目录下,文件名通常是 计算机名.err。打开查看最后的几行错误信息,是定位问题的最直接手段。
也可以通过命令查看:
.\mysqld --console前台运行会将错误信息直接打印到控制台。
检查端口占用情况:
netstat -ano | findstr :3306找到占用进程的 PID,在任务管理器中结束该进程,或者在 my.ini 中修改 port 为其他端口(如 3307)。
删除 data 目录下的所有文件(注意不是删除 data 目录本身),然后重新执行初始化命令:
.\mysqld --initialize --console会生成一个新的临时密码。
确保以下三处都设置为 utf8mb4:
my.ini 中的 character-set-server=utf8mb4mysql -u root -p --default-character-set=utf8mb4CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;通过 ZIP 包安装 MySQL 虽然步骤稍多,但胜在灵活可控:目录结构一目了然,配置文件完全掌握在自己手中,切换版本只需要修改环境变量。这套方法也适用于在 Windows Server 上部署生产环境。
最后的两点建议:
data 目录下的业务数据库,尤其是 ibdata1 和对应的 .ibd 文件以上就是 Windows 通过 ZIP 包安装 MySQL 的完整流程。如果你在安装过程中遇到问题,欢迎在评论区留言讨论。