【Windows 同时安装 MySQL5 和 MySQL8 - 详细图文教程】

卸载 MySQL

参考文章:

  1. 先管理员方式打开 cmd ,切换到 MySQL 安装目录的 bin 文件夹下,执行如下命令,删除 MySQL 服务

    bash 复制代码
    mysqld --remove mysql
  2. 打开控制面板卸载mysql的所有程序【没有跳过此步骤】

  3. 进入 MySQL 安装目录删除 mysql 文件夹

  4. 删除C盘目录下C:\ProgramData中mysql文件夹【没有跳过此步骤】

  5. win+R 打开运行界面输入 regedit ,回车

    • 删除 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 文件夹
    • 删除 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 文件夹
    • 删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 文件夹

    第一次可以只删除注册表上述三个信息,如果重装不成功,就要在编辑里查找所有带 mysql 的文件,并全部删除

  6. 环境变量暂时不删,下面安装 MySQL 时就不需要重新编写了

安装 MySQL

  1. 下载
    官网下载需要版本的 MySQL,先解压一个MySQL5版本,稍后安装MySQL8时再解压8.0版本【要不然容易出问题】
  2. 配置环境变量
    • 新建 MySQL 5 和 8 的变量
    • 找到 PATH 变量,新增两个变量的 bin

安装 MySQL5

  1. 创建 my.ini 配置文件

    bash 复制代码
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    port = 3305
    [mysqld]
    # 设置3305端口
    port = 3305
    # 设置mysql的安装目录
    basedir=D:\\mysql\\mysql-5.7.44-winx64
    # 设置mysql数据库的数据的存放目录(自动生成,不然可能报错)
    datadir=D:\\mysql\\mysql-5.7.44-winx64\\data
    # 允许最大连接数
    max_connections=10000
    # 允许最大连接人数
    max_user_connections=1000
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
     
    # 连接时间
    wait_timeout=31536000
    interactive_timeout=31536000
  2. 生成 data 文件夹

    • 管理员方式打开 cmd ,切换到 MySQL5 安装路径下的 bin 文件路径下,输入下述命令,等待生成 data 文件夹

      bash 复制代码
      mysqld --initialize
    • 找到 data 文件夹下的 .err 文件,打开查看生成的临时密码

  3. 安装 MySQL5 服务

    命令行输入如下命令【名字命名为 MYSQL5,指定默认的配置文件为刚才创建的my.ini文件

    bash 复制代码
    mysqld --install MYSQL5 --defaults-file=D:\mysql\mysql-5.7.44-winx64\my.ini
  1. 开启 MySQL5 服务

    命令行输入如下命令

    bash 复制代码
    net start mysql5
  2. 登录 MySQL5 修改密码

    • 登录输入如下命令,密码输入刚刚 .err 文件中的密码

      bash 复制代码
      mysql -u root -P 3305 -h localhost -p
    • 修改密码输入如下命令

      bash 复制代码
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你要设置的密码';
    • 刷新权限输入如下命令

      bash 复制代码
      flush privileges
    • 输入 quit 退出


安装 MySQL8

  1. 创建 my.ini 配置文件

    bash 复制代码
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    port = 3308
    [mysqld]
    # 设置3308端口
    port = 3308
    # 设置mysql的安装目录
    basedir=D:\\mysql\\mysql-8.0.30-winx64
    # 设置mysql数据库的数据的存放目录(自动生成,不然可能报错)
    datadir=D:\\mysql\\mysql-8.0.30-winx64\\data
    # 允许最大连接数
    max_connections=10000
    # 允许最大连接人数
    max_user_connections=1000
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
     
    # 连接时间
    wait_timeout=31536000
    interactive_timeout=31536000
  2. 生成 data 文件夹

    • 管理员方式打开 cmd ,切换到 MySQL8 安装路径下的 bin 文件路径下,输入下述命令,等待生成 data 文件夹

      bash 复制代码
      mysqld --initialize
    • 找到 data 文件夹下的 .err 文件,打开查看生成的临时密码

  3. 安装 MySQL8 服务

    命令行输入如下命令【名字命名为 MYSQL8,指定默认的配置文件为刚才创建的my.ini文件

    bash 复制代码
    mysqld --install MYSQL8 --defaults-file=D:\mysql\mysql-8.0.30-winx64\my.ini
  4. 开启 MySQL8 服务

    命令行输入如下命令

    bash 复制代码
    net start mysql8
  5. 登录 MySQL8 修改密码

    • 登录输入如下命令,密码输入刚刚 .err 文件中的密码

      bash 复制代码
      mysql -u root -P 3308 -h localhost -p
    • 修改密码输入如下命令

      bash 复制代码
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你要设置的密码';
    • 刷新权限输入如下命令

      bash 复制代码
      flush privileges
    • 输入 quit 退出


查看服务

使用 idea 可视化工具可以看到两个数据库均可连接

相关推荐
有浔则灵5 分钟前
GORM 关联关系完全指南:从入门到精通
mysql·gorm
eastyuxiao23 分钟前
MMM 工具一键去水印+检测 批处理脚本(Windows/Mac 双版本)
人工智能·windows·macos·ai音乐去水印
Ching·25 分钟前
MAC mini上面安装虚拟机windows11的安装详细过程及其问题解决
windows·macos·wmware fusion
草莓熊Lotso27 分钟前
Linux C++ 高并发编程:从原理到手撕,线程池全链路深度解析
linux·运维·服务器·开发语言·数据库·c++·mysql
Controller-Inversion28 分钟前
207. 课程表
windows
大龄码农-涵哥30 分钟前
MySQL SQL调优详解:explain执行计划、索引失效、慢查询优化一条龙
数据库·sql·mysql
阿丰资源37 分钟前
基于SpringBoot+MySQL+Maven+Vue的旅游网站的设计与实现(源码+数据库+文档一键运行)
数据库·spring boot·mysql
派大星酷1 小时前
AOP 完整精讲:原理、核心概念、五种通知、切点语法、自定义注解实战
java·mysql·spring
健康平安的活着1 小时前
mysql中不同时间类型(date/datetime/timestamp)的查询案例
数据库·mysql
健康平安的活着4 小时前
mysql中left join 不一定比 in效率高案例
数据库·mysql