【Windows上同时安装两个不同版本MYSQL】MySQL安装教程--5.7和8.0版本

2023-10-26

一、MySQL官网下载对应版本的zip文件

最新版本8.0.34下载链接:https://dev.mysql.com/downloads/mysql/
在这里插入图片描述

MySQL 5.7下载链接:https://downloads.mysql.com/archives/community/
在这里插入图片描述

二、将下载到的压缩包解压到指定目录

使用解压工具将下载到的压缩包解压:如:解压到D:/software/目录下(自己选择),解压之后建议重命名该解压出来的文件:如mysql-8.0.34-winx64文件夹名,可将后面的winx64去掉,得到mysql-8.0.34(方便查看和理解,此处可不修改,但后续内容需对应更改)
在这里插入图片描述

三、添加环境变量

右键我的电脑->属性->高级系统设置->环境变量

选择系统变量Path,在其后添加:你的mysql安装文件下面的bin文件夹
在这里插入图片描述

四、在与bin同级的文件夹下新建,my.ini文件(注意:此处5.7版本和8.0版本操作不同)

在这里插入图片描述

4.1、编辑my.ini文件的内容(MySQL 5.7版本,路径改为自己电脑上对应的路径)

[mysqld]

basedir=D:\\software\\mysql-5.7\\

datadir=D:\\software\\mysql-5.7\\data\\

port=3306

skip-grant-tables #免登陆检查

4.2、编辑my.ini文件的内容(MySQL 8.0版本,不需要加skip-grant-tables,路径改为自己电脑上对应的路径)

[mysqld]

basedir=D:\\software\\mysql-8.0.34\\

datadir=D:\\software\\mysql-8.0.34\\data\\

port=3307

注意:此处如果是\,会报错,修改为\,且端口号需要自行调整

五、启动管理员模式下的CMD,并将路径切换至mysql下的bin目录,然后输入:mysqld -install(安装mysql)

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

在这里插入图片描述

2.将目录切换到解压的mysql文件中的bin文件夹的位置:

输入:cd /d D:\software\mysql-8.0.34\bin (路径换为你电脑对应的位置即可)
在这里插入图片描述

3.此时输入:mysqld -install (安装mysql服务)

这种安装方式服务名默认为MySQL,如果已有同名服务名,安装方式参考目录十二第二种安装方式

命令行界面出现:Service successfully installed.即可
在这里插入图片描述
图中是已装了的情况。

六、再输入 mysqld --initialize-insecure --user=mysql初始化数据文件

输入之前目录如下:
在这里插入图片描述

执行 mysqld --initialize-insecure --user=mysql(没输出ERROR信息则没报错)

在这里插入图片描述
执行成功:生成data和docs文件夹
在这里插入图片描述

data文件夹,即为存储数据库的地方,之前有数据库可拷贝到该目录下就可以使用了。
在这里插入图片描述

七、启动mysql,然后用命令 mysql -uroot -p 进入mysql管理界面

7.1、控制台继续输入: net start mysql

在这里插入图片描述
在这里插入图片描述

7.2、再输入:mysql -h127.0.0.1 -P3307 -uroot

在这里插入图片描述
直接输入回车,就可以进入到mysql管理界面(因为我们没有密码)。
其中-h 参数指定连接的主机名(或 IP 地址),-P (大写的P)参数指定连接的端口号,-u 参数指定连接的用户名。
注意:由于已经安装了mysql5.7版本,直接使用mysql -uroot -p 会进入mysql5.7服务,无法进入mysql8.0,所以此时,需要指定连接的端口号

八、进入界面后更改root密码(注意:此处5.7版本和8.0版本操作不同)
1、mysql 5.7版本,输入:
update mysql.user set authentication_string=‘password(123456’) where user=‘root’ and host=‘localhost’;
在这里插入图片描述

出现图上内容,则修改密码成功了。

2、mysql 8.0版本,依次输入:

use mysql;
ALTER user root@'localhost' identified by '123456';

如图即修改成功。
在这里插入图片描述
注意:这种修改方式,用Navicat连接时,会出现问题。解决方法在后面遇到的问题

最后两个版本都输入:flush privileges; 进行刷新权限。
在这里插入图片描述

九、修改my.ini文件,删除最后一行skip-grant-tables免密登录(注意:此步只有5.7版本需要)

[mysqld]

basedir=D:\software\mysql-5.7\

datadir=D:\software\mysql-5.7\data\

port=3306

十、重启mysql即可正常使用

十一、使用修改的密码登录mysql

十二、mysql8.0版本第二种安装方式

服务名不可与已安装服务名重复,这里命名的服务为:MySQL80
1、执行命令 mysqld install MySQL80 --defaults-file=“D:\software\mysql-8.0.34\my.ini” ,出现Service successfully installed 表示服务安装成功
2、再输入 mysqld --initialize-insecure --user=mysql初始化数据文件
3、执行net start MySQL80 命令,启动服务

D:\software\mysql-8.0.34\bin>net start MySQL80
MySQL80 服务正在启动 .
MySQL80 服务已经启动成功。

4、执行mysql -h127.0.0.1 -P3306 -uroot -p123456命令,登录数据库

D:\software\mysql-8.0.34\bin>mysql -h127.0.0.1 -P3306 -uroot -p123456

———————————————————————————————————————————

附:遇到的问题

1、使用Navicat连接时,出现以下错误

在这里插入图片描述

主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。

打开mysql命令行输入如下命令查看,系统用户对应的认证插件:
在这里插入图片描述

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:
在这里插入图片描述

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。

plugin的作用之一就是处理后的密码格式和长度是不一样的,类似于使用MD5加密和使用base64加密一样对于同一个密码处理后的格式是不一样的。

1.1、解决

1.查看用户信息

select host,user,plugin,authentication_string from mysql.user;

2.修改用户密码(最好直接复制粘贴,手敲可能会报错)

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

更新user为root,host为% 的密码为123456

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

更新user为root,host为localhost 的密码为123456

备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

2、在安装Mysql 8 的过程中报错 mysqld: Can’t create directory …

在初始化mysql的时候执行mysqld --initialize-insecure --user=mysql遇到一个报错 mysqld: Can’t create directory … (OS errno 2 - No such file or directory)。

在网上搜了一遍,终于找到问题所在。
其实就是my.ini文件出了问题。
mysql 8 的配置文件中basedir 和 datadir 的路径格式不对!!!
网上贴的教程很多都是这样的:
在这里插入图片描述

#设置mysql的安装目录
basedir=D:\software\mysql-8.0.34\
#设置mysql数据库的数据的存放目录
datadir=D:\software\mysql-8.0.34\data

实际应该是这样的
在这里插入图片描述

需要用双斜杠

#设置mysql的安装目录
basedir=D:\\software\\mysql-8.0.34\\
#设置mysql数据库的数据的存放目录
datadir=D:\\software\\mysql-8.0.34\\data

———————————————————————————————————————————

借鉴文章

MySQL安装完整教程–5.7和8.0版本
Mysql 解决1251 client does not support …问题
Mysql 8安装报错Can‘t create directory问题解决
windows环境下操作,同一台机器 如何跑两个mysql服务?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Windows上同时安装两个不同版本MYSQL】MySQL安装教程--5.7和8.0版本 的相关文章

随机推荐

  • java连接mysql数据库代码_Java连接mysql数据库经典代码

    连其他数据库方式与以下方式类似 package dao impl import java sql Connection import java sql DriverManager import java sql PreparedStatem
  • c语言中断程序运行,C语言实现 "软中断" 程序小结

    参考网友帖子改写 呵呵 对于系统级语言设计之一的中断程序设计包括软中断和硬中断 后者设计到硬件端口的读写操作等等 应该用汇编实现比较好 而前者用C实现就要方便得多的了 对于软中断程序应该有3部分组成 中断程序的编写 安装和使用 由于我们可以
  • 文心大模型加持,百度知识中台三大案例入选信通院优秀案例

    近日 中国信息通信研究院依托中国人工智能产业发展联盟 AI工程化委员会知识计算工作组公布了 2023可信AI案例 知识计算应用优秀案例 名单 基于百度知识中台打造的 国能绥中电厂设备知识库应用 银联云闪付APP智能推荐平台应用 以及 南网智
  • 解决 node.js+MySQL 数据库读取Date日期 前端显示时间差8个小时

    问题描述 后端使用 node js Express 框架 连接 mysql 数据库 前端实现数据的编辑修改功能 发现前端发出的更新数据请求正常 数据库中显示的 Date 类型的日期正确 但前端页面上展示的日期少一天 不设定format 直接
  • VTK编译和安装

    准备工作 请先安装好以下工具和下载需要的VTK源码 Virtual Studio CMake Qt 如果需要结合Qt开发 需要安装好Qt VTK源码 以下是本人的环境 VS 2019 CMake 3 20 1 Qt 5 15 2 VTK 8
  • C/C++编程:定时器

    什么是定时器 很多场景都会用到定时器 比如心跳检测 倒计时 技能冷却等 定时器分类 一般定时任务的形式表现为 经过固定时间后触发 按照固定频率周期性触发 在某个时刻触发 定时器的本质 那定时器到底是什么呢 可以理解为这样一个数据结构 存储一
  • ImportError: rocketmq dynamic library not found

    Traceback most recent call last File initialtomq py line 10 in
  • centOS-7静态ip配置

    centOS 7静态ip配置 1 确定网关 vmware虚拟机 gt 编辑菜单 gt 虚拟网络编辑器 gt 打开窗口 gt 选中vmnet8虚拟网卡 gt nat设置 gt 查看网关 具体如下图 2 查看可用的ip网段 vmware虚拟机
  • 06-----the inferior stopped because it triggered an exception

    这个问题总结一下 1 指针非法访问或者数组越界导致的 2 相关的静态库 动态库版本与编译器的位数不一致导致的 而我就是第2个问题导致的 因为我出错的地方是一个int型的变量 并非指针 故将QT的MSCV编译位数改成32位后 程序正常 因为我
  • 快手did did_gt edid的注册过程

    接口 https gdfp ksapisrv com rest infra gdfp report kuaishou android did 是本地生成的16进制 或者 获取的 android id did gt 是did生成时间戳 159
  • wx小程序结构目录介绍及创建和删除

    仔细查看之前创建的项目 可以发现项目里生成很多不同类型的文件 json 后缀 JSON 配置文件 wxml 后缀 WXML 模板文件 wxss 后缀 WXSS 样式文件 js 后缀 JS 脚本逻辑文件 1 sitemap json小程序收录
  • 人机交互的困难之一常常在于没有形成有效的你、我、他之间的互换。

    人机交互的困难之一常常在于没有形成有效的你 我 他之间的互换 而要形成交互过程中有效的你 我 他角色的互换 可以考虑以下几个方面 清晰定义角色 在交互开始之前 明确定义每个参与者的角色和身份 机器可以被定义为 你 而用户则为 我 这样可以建
  • 《Cesium 进阶知识点》 - 加载天地图三维地名服务(无Cesium 版本依赖)

    一 解决依赖 天地图官网说只支持 1 52 1 58 1 63 1 这 3个版本 其它版本报错 但我只使用三维地名服务 所以做了如下修改 我在 1 80 版 和 1 84 版中测试有效 操作部署是 1 根据官网安装 cesium tdt 插
  • Python------- if-else语句介绍

    Python的if else语句是一个判断性语句 要判断就需要有条件以及满足条件和不满足条件的情况 以下就此进行说明 1 if else的使用格式 if 条件 满足条件所要做的事情 else 不满足条件所要做的事情 这里需要注意的是 if和
  • 数据库SQL性能优化之详解

    一 问题的提出 在应用系统开发初期 由于开发数据库数据比较少 对于查询SQL语句 复杂视图的的编写等体会不出SQL语句各种写法的性能优劣 但是如果将应用系统提交实际应用后 随着数据库中数据的增加 系统的响应速度就成为目前系统需要解决的最主要
  • c语言 (3×3)矩阵转置

    题目描述 写一个函数 使给定的一个二维数组 转置 即行列互换 输入 一个3x3的矩阵 输出 转置后的矩阵 样例输入 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5 8 3 6 9 废话不说还是直接上代码 include
  • 使用STM32CUBEIDE创建工程,点亮LED

    1 创建LED驱动文件 先在工程下新建一个文件夹命名为icode存放驱动程序 然后对每一个外设新建新的驱动文件夹 如驱动LED就新建文件夹led 然后在led文件夹下创建对应的头文件和源文件 即led h和led c 然后编写对应外设的驱动
  • X.509证书的使用

    总结一下如何使用X 509证书来保护我们的设备的数据传输 证书的签发 以下是证书签发的流程 为了更好的演示 我们需要分别创建两个根证书 并且用每个根证书来颁发一个客户端证书 这两个根证书分别为root 1 crt以及root 2 crt 对
  • Java上传下载ftp文件

    在Java中连接FTP服务器可以使用Apache Commons Net库提供的FTPClient类 以下是一个简单的示例代码 演示如何连接到FTP服务器 进行文件上传和下载操作 import org apache commons net
  • 【Windows上同时安装两个不同版本MYSQL】MySQL安装教程--5.7和8.0版本

    一 MySQL官网下载对应版本的zip文件 最新版本8 0 34下载链接 https dev mysql com downloads mysql MySQL 5 7下载链接 https downloads mysql com archive