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

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 

写入以下内容:

[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,执行:

mysqld --initialize 

如果初始化成功,会在 data 目录生成一批文件,同时生成 .err 错误日志文件。

下图这种输出一般表示初始化正常执行:

在这里插入图片描述

data 目录生成内容示例:

在这里插入图片描述

五、获取 root 初始临时密码

初始化完成后,MySQL 会在 data 目录生成一个 .err 文件,例如:

DESKTOP-xxx.err 

打开该 .err 文件,搜索关键字:

temporary password 

即可找到 root 初始临时密码,例如:

/MaQuy.7,WFV 

下图红框位置即为初始密码:

在这里插入图片描述

另一张示例图:

在这里插入图片描述

该密码用于首次登录,登录后必须修改,否则后续操作会受限制。


六、安装 MySQL Windows 服务

为了方便开机启动与后台运行,通常会把 MySQL 注册成 Windows 服务。

进入 MySQL 根目录:

D: cd D:\mysql\mysql-8.0.28-winx64 

执行安装服务命令:

mysqld --install 

执行成功后会创建默认名为 MySQL 的系统服务。


七、服务已存在报错处理

在安装服务时,可能会遇到如下提示:

The service already exists! The current server installed: D:\mysql\mysql-8.0.28-winx64\bin\mysqld MySQL 

示例截图如下:

在这里插入图片描述

该问题通常是系统中已经注册过 MySQL 服务(可能是旧版本残留),需要删除旧服务后重新安装。

执行删除命令:

sc delete MySQL 

输出如下说明删除成功:

[SC] DeleteService 成功 

示例截图:

在这里插入图片描述

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

在这里插入图片描述

删除完成后重新执行:

mysqld --install 

即可完成注册。


八、启动 MySQL 服务

服务注册完成后启动 MySQL:

net start mysql 

启动成功示例:

在这里插入图片描述

如果启动失败,建议立即检查 data 目录下 .err 日志文件,里面会给出具体错误原因(端口占用、配置路径错误、权限不足等)。


九、登录 MySQL

启动成功后,使用 root 登录:

mysql -u root -p 

随后输入 .err 文件中查到的临时密码即可进入 MySQL。


十、修改 root 密码

MySQL 8.0 默认启用较强的密码校验策略,首次登录后必须修改密码。

执行以下 SQL:

alteruser'root'@'localhost' identified with mysql_native_password by'123456';

修改成功示例:

在这里插入图片描述

如果希望刷新权限(部分情况下建议执行):

FLUSH PRIVILEGES;

十一、验证 MySQL 是否安装成功

1. 查看版本号

mysql -V 

输出示例:

mysql Ver 8.0.28 for Win64 on x86_64 (MySQL Community Server - GPL) 

2. 检查端口监听状态

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 进行可视化管理,效率会更高。

Read more

提升分布式系统响应速度:分布式系统远程调用性能提升之道

提升分布式系统响应速度:分布式系统远程调用性能提升之道

目录 一、远程调用直接案例分析 二、并行调用 (一)核心思想 (二)并行调用的实现方式 1. 基本思路 2. 代码示例 3. 关键点说明 4.线程池配置建议 三、数据异构 (一)场景重提 (二)数据异构的优点与挑战 (三)数据一致性优化 1.双写策略 2.消息队列异步更新 3.定期同步 (四)缓存管理策略优化 1.缓存预热 2.缓存穿透防护 3.缓存过期策略 (五)数据架构设计 (六)总结:异构存储的优化效果 四、混合策略 (一)设计理念  1.数据分类处理

By Ne0inhk
Flutter 三方库 health_connector_core 的鸿蒙化适配指南 - 实现具备跨平台标准的数据采集与同步架构、支持端侧健康指标建模与设备总线协同实战

Flutter 三方库 health_connector_core 的鸿蒙化适配指南 - 实现具备跨平台标准的数据采集与同步架构、支持端侧健康指标建模与设备总线协同实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 health_connector_core 的鸿蒙化适配指南 - 实现具备跨平台标准的数据采集与同步架构、支持端侧健康指标建模与设备总线协同实战 前言 在进行 Flutter for OpenHarmony 的运动健身、个人健康管理或数字疗法类应用开发时,如何统一管理来自不同传感器(如心率计、血糖仪、计步器)的异构数据?health_connector_core 是一款专注于健康数据标准化处理的底层库。它提供了从指标建模到数据聚合的完整逻辑框架。本文将探讨如何在鸿蒙端构建极致、严谨的健康数据中枢。 一、原直观解析 / 概念介绍 1.1 基础原理 health_connector_core 建立在“标准指标(Standard Metrics)”系统之上。它将杂乱无章的原生生理信号抽象为统一的 Record 模型。

By Ne0inhk
Django REST framework企业级API架构实战

Django REST framework企业级API架构实战

目录 摘要 1. 🎯 开篇:从踩坑到架构 2. 🏗️ 核心原理深度解析 2.1 DRF架构设计哲学 2.2 视图集:CRUD的终极抽象 2.3 序列化器:不只是数据转换 3. 🔧 实战:完整API实现 3.1 用户管理API 3.2 分页、过滤、排序 3.3 节流与限流 4. 🔥 高级实战:企业级API 4.1 缓存优化策略 4.2 性能监控中间件 4.3 API版本管理 5. 🚀 性能优化指南 5.1 数据库优化 5.

By Ne0inhk

RustDesk 服务端完整安装部署教程

RustDesk 服务端完整安装部署教程(2025 版) 一、环境准备 1. 服务器要求 * 操作系统:Ubuntu 20.04/22.04(推荐)、Debian、CentOS 等 * 硬件配置: * 测试环境:1 核 2G 以上 * 生产环境:2 核 4G+,50G + 存储空间 * 网络要求:公网 IP(如需外网访问) 2. 防火墙配置 开放 RustDesk 服务端所需端口: # Ubuntu/Debiansudo ufw allow 21115:21119/tcp sudo ufw allow 21116/

By Ne0inhk