MySQL安装多版本与版本切换

embedded/2025/3/4 6:05:13/

起因

今天在将一个项目部署到本地,找到的这个项目使用的MySQL版本是MySQL5.7,应该是比较古早的项目了,但是我现在装的是8.4版本的,所以涉及MySQL的版本切换,这里记录一下操作方法。


如何安全切换版本而不删除原有MySQL?

1. 仅停止旧服务,保留文件
  • 停止并删除旧服务(若之前安装的时候没有自己指定MySQL服务名,则默认为MySQL):

    #停止现有的MySQL服务
    net stop MySQL
    # 确认旧服务不会再用可以选择直接在删除服务
    sc delete MySQL
    
  • 注意:此操作仅移除服务注册,不会删除安装目录(如D:\MySQL\mysql-8.4.1-winx64)和数据目录(默认在ProgramData\MySQL或自定义路径)。

为什么需要删除服务?

当你在Windows中安装MySQL时,系统会注册一个服务(如默认的MySQLMySQL80)。若直接安装第二个MySQL实例,可能会因服务名冲突导致报错The service already exists!。因此,删除旧服务是为了解决服务名冲突问题,而不是卸载MySQL。切换版本时只需处理服务注册项,保留原有数据和程序文件即可。

2. 添加配置文件my.ini

若安装MySQL的方法为直接下载压缩包的话,是没有自带my.ini文件的,需要自己新建一个,位置为根目录D:\MySQL\mysql-8.4.1-winx64\下,具体内容如下。

示例my.ini配置:

[mysqld]
#端口号 若有多个mysql,端口号应不同
port = 3307              
#mysql-5.7.43-winx64的路径
basedir=D:\MySQL\mysql-5.7.43-winx64           #修改为自己的数据库解压路径
#mysql-5.7.43-winx64的路径+\data
datadir=D:\MySQL\mysql-5.7.43-winx64\data   #修改为自己的数据库存储路径#最大连接数
max_connections=200
#编码
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysql]
#编码
default-character-set=utf8 
3. 安装新版本时指定独立配置
  • 进入新版本的**bin目录**,执行安装命令时需:

    • 指定新服务名:避免与旧服务冲突(如MySQL_New)。
    • 配置独立端口和数据目录:在my.ini中设置不同端口(如3307)和datadir路径。
    mysqld install MySQL_New --defaults-file="D:\新版本路径\my.ini"# 例:
    mysqld install MySQL841 --defaults-file="D:\MySQL\mysql-8.4.1-winx64\my.ini"
    
  • 初始化并启动新服务:

    执行初始化命令之后会得到一个随机生成的密码,用于初次连接登录。

    # 初始化
    mysqld --defaults-file="D:\MySQL\mysql-8.4.4-winx64\my.ini" --initialize --console
    # 启动
    net start MySQL_New
    
  • 连接,进入MySQL命令行

    # 连接版本(端口3307)
    mysql -uroot -P3307 -p
    
  • 更改密码

    将随机密码更改为自己熟悉的密码,如``123456`

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    
4. 多版本共存与切换
  • 通过不同服务名启动/停止

    net start MySQL_New   # 启动新版本
    net stop MySQL_Old    # 停止旧版本
    
  • 通过不同端口连接

    mysql -uroot -P3306 -p   # 连接旧版本(端口3306)
    mysql -uroot -P3307 -p   # 连接新版本(端口3307)
    
  • 环境变量切换(可选):
    将常用版本的bin目录放在系统变量Path最前面,或通过批处理脚本临时切换路径。


注意事项

  1. 数据安全
    删除服务时切勿误删datadir文件夹(包含数据库文件)或basedir(安装目录)。若需彻底卸载,才需手动删除这些目录。
  2. 注册表残留
    若后续安装失败,检查注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中是否残留旧服务项并手动删除。
  3. 配置文件隔离
    确保新旧版本的my.ini文件独立,避免端口或路径冲突。

篇结。


http://www.ppmy.cn/embedded/169505.html

相关文章

新一代信息技术:从技术范畴到未来趋势的全景洞察

新一代信息技术(New Generation Information Technology)是当前全球科技革命和产业变革的核心驱动力之一,也是各国政策文件中重点支持的战略性技术领域。它并非单一技术,而是一系列前沿信息技术的融合与集成,旨在推动数…

信号与系统笔记——第一章 信号与系统概述(三)

1.3 信号的运算 Z1.12 信号的加减乘运算 括号内的 既可以是 t 也可以是 k ,此处用 k 表示。 Z1.13 信号的反转 离散信号的反转: Z1.14 信号的平移 Z1.15 信号的尺度变化 注:本文出自对bilibili 【西安电子科技大学】郭宝龙教授&#xff0…

锂电池保护板测试仪:电池安全的守护者与创新驱动力

在新能源产业蓬勃发展的今天,锂电池以其高能量密度、长循环寿命和环保特性,成为电动汽车、无人机、便携式电子设备等领域不可或缺的能量来源。然而,锂电池的安全性和稳定性一直是行业关注的焦点。为了确保锂电池在各种应用场景下的可靠运行&a…

SQL Server所有数据类型大全

数据类型列表 整数类型:bigint、int、smallint、tinyint精确数值类型:decimal、numeric近似数值类型:float、real字符类型:char、varchar、text、nchar、nvarchar、ntext日期和时间类型:date、time、datetime2、dateti…

GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作

GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作 今天我们来说说上午发布的GPT-4.5,接下来我们说说GPT4.5到底如何,有哪些功能?有哪些性能提升?怎么快速使用到GPT-4.…

图数据库Neo4j面试内容整理-使用场景-网络和安全分析

网络和安全分析 是图数据库的另一个重要应用场景,尤其在处理复杂的网络拓扑、事件追踪、入侵检测、漏洞分析、恶意行为检测等任务时,图数据库展现出其强大的优势。网络和安全分析常涉及到对复杂的节点(如服务器、用户、设备)和关系(如通信、访问权限、依赖关系)的深入分析…

上位机知识篇---HTTPHTTPS等各种通信协议

文章目录 前言1. HTTP(HyperText Transfer Protocol)功能传输超文本无状态协议支持多种方法 特点明文传输基于TCP简单灵活 使用场景示例请求响应 2. HTTPS(HTTP Secure)功能加密传输身份验证特点基于SSL/TLS默认端口需要证书 使用…

playwright 自动化登录验证码,测试Iframe

还记得之前的文章吗,我们之前有说过,实现自动登录,详细分析了Playwright实战中登录状态问题。下面聚焦到storageState从原理到实战实现登录状态管理,从而一劳永逸解决验证码问题。 简介:在自动化测试中,频…