MySQL解压版(保姆级教程)

文章目录

      • 1. 下载MySQL
      • 2. 解压压缩包
      • 3. 添加环境变量
      • 4. 创建配置文件
      • 5. 启动管理员模式下的CMD
      • 6. 重启mysql
      • 7. 检查服务是否成功启动
      • 8. 可能遇见的错误
        • 🎯 数据目录未正确初始化
        • 🎯 MySQL服务已存在但路径错误
        • 🎯 端口被占用
        • 🎯 MySQL配置文件错误
        • 🎯 手动启动MySQL(无服务模式)
      • 9. MySQL 解压版 和 安装包的对比
        • 9.1 MySQL 解压版
        • 9.2 MySQL 安装版
        • 9.4 使用场景对比

1. 下载MySQL

下载网址: https://dev.mysql.com/downloads/
image-20250113210521637
image-20250113210556280 选择免安装版,点击下载。
image-20250113210613026

2. 解压压缩包

解压压缩包----->放置任意磁盘
去掉解压后的-winx64,放置任意磁盘位置

image-20250113211052889

image-20250113210912656

3. 添加环境变量

  1. 右键此电脑—>属性
  2. 高级系统设置—>环境变量---->path系统变量—>编辑---->新建—>复制解压的mysql-8.0.40的bin文件的路径—>保存
    image-20250113211126479

image-20250113211208808

image-20250113211323691
image-20250113211358750

4. 创建配置文件

  1. 打开文件扩展名设置

image-20250113211534553

  1. 新建mysql配置文件ini
    新建文本文档,命名为my.ini
    image-20250113211617913
    修改my.ini文件内容,注意修改路径,修改为自己放置mysql文件的目录
    image-20250113211805902
# MySQL 服务器基本设置[mysqld]
# MySQL 的安装目录 (basedir),即 MySQL 解压目录
basedir=D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\# MySQL 数据文件存储目录 (datadir),用于存放数据库文件
datadir=D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\data\# 服务器端口号 (默认3306)
port=3306# 服务器字符集配置(推荐使用utf8mb4,支持更全面的Unicode字符集)
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci# 默认存储引擎 (InnoDB 是推荐的事务型存储引擎)
default-storage-engine=INNODB# 是否将 InnoDB 设置为默认事务引擎
default-authentication-plugin=mysql_native_password# SQL 模式设置,启用严格模式,推荐生产环境使用,避免数据一致性问题
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION# 最大连接数 (默认为151,可根据实际需求调整)
max_connections=200# 缓冲池大小 (InnoDB 用于缓存数据和索引的内存大小,推荐1GB以上)
innodb_buffer_pool_size=1G# 日志文件大小 (InnoDB 日志文件的大小)
innodb_log_file_size=256M# 启用慢查询日志 (帮助分析性能瓶颈)
slow_query_log=1
slow_query_log_file=D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\logs\slow_query.log
long_query_time=2  # 查询时间超过2秒的SQL会记录到慢查询日志中# 错误日志文件 (记录MySQL的错误信息)
log_error=D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\logs\error.log# 日志输出方式 (可选值:FILE、TABLE)
log_output=FILE# 启用日志查询 (记录所有的SQL查询,生产环境慎用)
general_log=0
general_log_file=D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\logs\general.log# 跳过DNS解析,加快连接速度
skip-name-resolve# 是否自动重启 (如果MySQL在异常情况下崩溃,自动重启)
auto-restart=1# 表示不区分大小写 (0区分大小写,1不区分大小写)
lower_case_table_names=1# 禁用符号链接,防止安全风险
symbolic-links=0# 开启MySQL服务端的本地时间同步
default-time-zone=+8:00  # 北京时间

5. 启动管理员模式下的CMD

5.1. 启动cmd

image-20250113211932734
5.2. 切换bin目录,运行安装程
image-20250113211956221
5.3. 利用命令初始化数据文件
输入如下命令,等待加载完毕

mysqld --initialize-insecure --user=mysql
  • 说明: 该命令会初始化数据库,但不设置 root 密码。

image-20250113212029763

5.4 重启mysql,进入管理界面

输入命令

net start mysql

说明: 如果服务未安装,请先运行:mysqld --install

在这里插入图片描述
使用命令进入mysql管理界面

mysql -u root -p

修改 root 密码为: 123456

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

5.5 刷新权限以生效

flush privileges;

6. 重启mysql

exit;                  # 退出 MySQL:
net stop mysql   # 停止 MySQL
net start mysql   # 启动 MySQL

7. 检查服务是否成功启动

  • 在 PowerShell 中输入:
PS D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\bin> Get-Service -Name mysqlStatus   Name               DisplayName
------   ----               -----------
Running  MySQL              mysql
  • 如果显示 Running,说明服务已正常启动。

8. 可能遇见的错误

建议检查顺序:

  1. 检查 data 目录。
  2. 移除旧服务 (mysqld --remove)。
  3. 重新安装并启动。
  4. 检查端口冲突。
  5. 尝试手动启动 (mysqld --console)。

报错 “MySQL 服务无法启动”NET HELPMSG 3534,说明:

  1. MySQL服务已存在mysqld --install 报错)。
  2. 服务未能成功启动,但没有明确错误信息。

🎯 数据目录未正确初始化

使用了 --initialize-insecure 命令后,可能数据目录未正确初始化,或 data 目录已存在但不完整。

解决方法:重新初始化数据目录

  1. 停止MySQL服务(如果有运行的服务):

    net stop mysql
    
  2. 删除旧的 data 目录(重要):
    D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\ 下删除 data 文件夹。

  3. 重新初始化数据库(确保bin目录正确):

    mysqld --initialize-insecure --user=mysql
    
    • --initialize-insecure:初始化数据库但不会设置root密码。
    • 会自动生成 data 目录。
  4. 重新启动 MySQL 服务:

    net start mysql
    

🎯 MySQL服务已存在但路径错误

你尝试安装 MySQL 服务时,报错 “The service already exists!”,可能是服务存在但路径错误。

解决方法:移除旧服务并重新安装

  1. 删除已存在的MySQL服务:

    mysqld --remove
    
  2. 重新安装MySQL服务:

    mysqld --install
    
  3. 启动MySQL服务:

    net start mysql
    

🎯 端口被占用

默认 MySQL 使用 3306 端口,如果被其他服务占用,MySQL 可能无法启动。

检查端口是否被占用

  1. 在 PowerShell 输入:

    netstat -ano | findstr 3306
    
  2. 如果端口被占用,找到对应的 PID,然后结束进程:

    taskkill /PID <PID号> /F
    
  3. 重新启动 MySQL 服务:

    net start mysql
    

🎯 MySQL配置文件错误

如果 my.ini 文件中存在错误配置,也可能导致服务无法启动。

检查 my.ini 配置文件

  1. 打开 D:\mysql-8.0.40-winx64\mysql-8.0.40-winx64\my.ini

  2. 确保以下配置正确:

    [mysqld]
    port=3306
    basedir=D:/mysql-8.0.40-winx64/mysql-8.0.40-winx64
    datadir=D:/mysql-8.0.40-winx64/mysql-8.0.40-winx64/data
    
  3. 保存文件

    后,重新启动 MySQL 服务:

    net start mysql
    

🎯 手动启动MySQL(无服务模式)

如果服务仍无法启动,可以尝试手动启动MySQL。

mysqld --console
  • 如果正常启动,说明 MySQL 安装无问题,但服务启动有异常。

9. MySQL 解压版 和 安装包的对比

使用 MySQL 免安装版(解压版)与 MySQL 安装包(安装向导版)各有优缺点。以下是两种方式的详细对比

9.1 MySQL 解压版

特点:

  • 仅需解压即可使用。
  • 手动配置环境变量和服务。
  • 适用于更灵活、可移植的场景。

优点:

  1. 轻量灵活:
    • 无需复杂的安装向导,直接解压即可使用。
    • 可以放在任意目录下,支持自定义目录结构。
  2. 可移植性强:
    • 只需复制整个 MySQL 目录,迁移到其他电脑后配置 my.ini 即可继续使用。
  3. 便于多版本管理:
    • 可以同时解压多个不同版本的 MySQL,只需要分配不同端口和数据目录即可。
  4. 更少的系统依赖:
    • 不会在系统中安装过多的注册表和服务项,干净且易于移除。

缺点:

  1. 需要手动配置:
    • 需要手动配置 my.ini 和环境变量。
    • 手动初始化数据目录和创建服务。
  2. 易出错:
    • 如果路径错误或环境变量未配置正确,可能导致无法启动 MySQL 服务。
  3. 缺乏图形化管理:
    • 需要额外安装图形化管理工具,如 MySQL Workbench 或 phpMyAdmin。
9.2 MySQL 安装版

特点:

  • 使用 .msi 安装包,通过图形化向导进行安装和配置。
  • 自动完成环境变量配置、服务注册和初始化。

优点:

  1. 自动化安装:
    • 自动完成环境变量配置、数据目录初始化以及服务注册。
  2. 便捷性高:
    • 适合新手用户,整个过程由向导引导完成。
  3. 内置图形化工具:
    • 默认可选安装 MySQL Workbench 和 MySQL Notifier,便于图形化管理数据库。
  4. 自动配置服务:
    • 自动注册 MySQL 服务,方便使用 net start mysql 启动和停止服务。

缺点:

  1. 不够灵活:
    • 目录结构固定,默认安装到 C:\Program Files\MySQL\,更改位置较麻烦。
  2. 难以管理多个版本:
    • 如果需要同时使用多个 MySQL 版本,安装版更难配置。
  3. 占用更多系统资源:
    • 默认安装更多的附加工具,可能占用更多的磁盘空间和系统资源。
  4. 卸载不彻底:
    • 使用安装包卸载时,可能会遗留注册表项和数据目录。

9.4 使用场景对比
对比点MySQL 免安装版MySQL 安装版
使用难度需要手动配置环境变量和服务自动化配置,适合新手使用
灵活性可自由选择路径和多版本管理路径固定,管理多版本较复杂
移植性高,可直接复制到其他机器使用低,依赖安装目录和注册表
适合用户高级用户、开发者、需要多版本使用初学者、单机用户、普通使用场景
资源占用轻量,仅核心文件占用更多资源,附带图形化工具
图形化管理需要手动安装 Workbench默认附带 Workbench 和 Notifier
服务管理手动注册服务自动注册服务

✅ 建议:

  • 如果你是 开发人员,建议使用 免安装版,便于灵活控制和多版本共存。
  • 如果你是 初学者普通用户,建议使用 安装版,方便一键配置和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/68095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能实验(四)-A*算法求解迷宫寻路问题实验

零、A*算法学习参考资料 1.讲解视频 A*寻路算法详解 #A星 #启发式搜索_哔哩哔哩_bilibili 2.A*算法学习网站 A* 算法简介 一、实验目的 熟悉和掌握A*算法实现迷宫寻路功能&#xff0c;要求掌握启发式函数的编写以及各类启发式函数效果的比较。 二、实验要求 同课本 附录…

【Vue实战】Vuex 和 Axios 拦截器设置全局 Loading

目录 1. 效果图 2. 思路分析 2.1 实现思路 2.2 可能存在的问题 2.2.1 并发请求管理 2.2.2 请求快速响应和缓存带来的问题 3. 代码实现 4. 总结 1. 效果图 如下图所示&#xff0c;当路由变化或发起请求时&#xff0c;出现 Loading 等待效果&#xff0c;此时页面不可见。…

Github配置ssh key,密钥配对错误怎么解决?

解决密钥配对的方案如下&#xff1a; 方法一、最有效的方案&#xff1a;重新配置&#xff0c;验证 SSH 密钥是否已添加到 GitHub 确保您的 SSH 密钥已经正确添加到了 GitHub 账户中。您可以打开命令行控制台&#xff08;cmd/powerShell都可以&#xff09;&#xff0c;按照以下…

Java基础知识(六) -- 常用类

1.包装类 1.1 概述 Java提供了两个类型系统&#xff0c;基本类型与引用类型&#xff0c;使用基本类型在于效率&#xff0c;但当使用只针对对象设计的API或新特性(例如泛型)&#xff0c;那么基本数据类型的数据就需要用包装类来包装。 序号基本数据类型包装类&#xff08;java…

【Linux】深入理解文件系统(超详细)

目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 &#x1f4cc;补充&#xff1a; &#x1f4cc;通常网络中用高低电平&#xff0c;磁盘中用磁化方向来表示。以下是具体说明&#xff1a; &#x1f4cc;如果有一块磁盘要进行销毁该怎么办&#xff1f; 1-2 磁盘存储结构 ​编辑…

【硬件介绍】Type-C接口详解

一、Type-C接口概述 Type-C接口特点&#xff1a;以其独特的扁头设计和无需区分正反两面的便捷性而广受欢迎。这种设计大大提高了用户的使用体验&#xff0c;避免了传统USB接口需要多次尝试才能正确插入的问题。Type-C接口内部结构&#xff1a;内部上下两排引脚的设计虽然可能不…

Linux第二课:LinuxC高级 学习记录day02

2.4、shell中的特殊字符 2.4.4、命令置换符 或者 $() 反引号&#xff1a;esc下面的按键&#xff0c;英文状态下直接按 功能&#xff1a;将一个命令的输出作为另一个命令的参数 echo 不会认为hostname是一个命令 加上 之后&#xff0c;先执行hostname&#xff0c;拿到主机名…

图生生AI描述生图:一句话生成蛇年海报素材

2025年春晚吉祥物“巳升升”的亮相&#xff0c;引发了广泛讨论。其整体造型参考甲骨文中的“巳”字&#xff0c;以青绿色为主调&#xff0c;象征春意盎然、蓬勃生机。从头部轮廓、脸颊螺旋形状到五官设计&#xff0c;都蕴含着丰富的传统文化元素。巳升升的亮相&#xff0c;春节…

KMP前缀表 ≈ find() 函数——28.找出字符串中第一个匹配项的下标【力扣】

class Solution { public: //得到前缀表void getNext(int *next,string needle){int j0;for(int i1;i<needle.size();i){while(j>0 && needle[j]!needle[i]) jnext[j-1];//**j>0**>j0是出口if(needle[i]needle[j]) j;next[i]j;//若写入if中&#xff0c;则该…

前端笔记----

在我的理解里边一切做页面的代码都是属于前端代码。 之前用过qt框架&#xff0c;也是用来写界面的&#xff0c;但是那是用来写客户端的&#xff0c;而html是用来写web浏览器的&#xff0c;相较之下htmlcssJavaScript写出来的界面是更加漂亮的。这里就记录我自个学习后的一些笔…

FairGuard游戏安全2024年度报告

导 读&#xff1a;2024年&#xff0c;国内游戏市场实际销售收入3257.83亿元&#xff0c;同比增长7.53%&#xff0c;游戏用户规模6.74亿人&#xff0c;同比增长0.94%&#xff0c;市场收入与用户规模双双实现突破&#xff0c;迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&…

C++ STL之容器介绍(vector、list、set、map)

1 STL基本概念 C有两大思想&#xff0c;面向对象和泛型编程。泛型编程指编写代码时不必指定具体的数据类型&#xff0c;而是使用模板来代替实际类型&#xff0c;这样编写的函数或类可以在之后应用于各种数据类型。而STL就是C泛型编程的一个杰出例子。STL&#xff08;Standard …

uniapp 抖音小程序 getUserProfile:fail must be invoked by user tap gesture

项目场景&#xff1a; uniapp 抖音小程序 getUserProfile:fail must be invoked by user tap gesture,在实现点击头像需要出发抖音小程序获取用户原生头像的操作中&#xff0c;无论如何也无法触发抖音的原生窗口&#xff01; 问题描述 这个问题我找了很多博主的方法&#xff…

.NET Core NPOI 导出图片到Excel指定单元格并自适应宽度

NPOI&#xff1a;支持xlsx&#xff0c;.xls&#xff0c;版本>2.5.3 XLS&#xff1a;HSSFWorkbook&#xff0c;主要前缀HSS&#xff0c; XLSX&#xff1a;XSSFWorkbook&#xff0c;主要前缀XSS&#xff0c;using NPOI.XSSF.UserModel; 1、导出Excel添加图片效果&#xff0…

SpringCloud微服务:基于Nacos组件,整合Dubbo框架

dubbo和fegin的差异 一、Feign与Dubbo概述 Feign是一个声明式的Web服务客户端&#xff0c;使得编写HTTP客户端变得更简单。通过简单的注解&#xff0c;Feign将自动生成HTTP请求&#xff0c;使得服务调用更加便捷。而Dubbo是一个高性能、轻量级的Java RPC框架&#xff0c;提供了…

Jenkins触发器--在其他项目执行后构建

前言&#xff1a; jenkins中有多种触发器可用&#xff0c;可以方便的控制构建的启动 这里简单介绍下项目后构建的配置方法 1. 解释&#xff1a; Build after other projects are built Set up a trigger so that when some other projects finish building, a new build is…

4、蓝牙打印机-定时器驱动

蓝牙打印机实现打印内容&#xff0c;需要先通过定时器发送固定的节拍驱动步进电机转动&#xff0c;从而驱动打印头打印相应的内容。 因此想要实现打印&#xff0c;先要实现定时器功能。 本例采用通用定时器2完成发送节拍功能。 1、硬件 定时器总线 由上图知道TIM2是挂载在A…

(纯小白教程)Mac OS中安装配置Anaconda及常用conda命令回顾

本教程介绍了如何在Mac OS系统中下载、安装、配置 Anaconda3&#xff0c;并介绍了换源的方法&#xff0c;最后介绍了常用的conda命令。本教程适用于苹果系统&#xff0c;如需要在Windows系统或者Liunx系统中安装Anaconda3&#xff0c;可移步至主页的其他博客。 &#xff08;纯…

JVM面试相关

JVM组成 什么是程序计数器 详细介绍Java堆 什么是虚拟机栈 能不能解释一下方法区&#xff1f; 直接内存相关 类加载器 什么是类加载器&#xff0c;类加载器有哪些 什么是双亲委派模型 类加载过程 垃圾回收 对象什么时候可以被垃圾回收器回收 JVM垃圾回收算法有那些 JVM的分代…

Netty 入门学习

前言 学习Spark源码绕不开通信&#xff0c;Spark通信是基于Netty实现的&#xff0c;所以先简单学习总结一下Netty。 Spark 通信历史 最开始: Akka Spark 1.3&#xff1a; 开始引入Netty&#xff0c;为了解决大块数据&#xff08;如Shuffle&#xff09;的传输问题 Spark 1.6&…