知行合一
Choose a quality life!

前言

本文介绍如何在windows中快速的同时安装多个不同版本的mysql数据库,自定义端口,自定义存储位置,自定义是否开机启动mysql服务,可以方便的在本地测试不同版本的mysql数据库。

实验环境

win10版本:Microsoft Windows [版本 10.0.18363.900] x64

下载社区版的MySQL安装包

开发人员专区

https://dev.mysql.com/

下载中心

https://dev.mysql.com/downloads/

社区版mysql server下载

https://dev.mysql.com/downloads/mysql/

所有历史版本的下载

https://downloads.mysql.com/archives/community/

这里我们下载5.5 5.6 5.7三个版本的mysql。

由于我们是自定义端口、存储位置,所以使用解压缩的方式进行安装会比较方便,所以下载时选择下载压缩包格式的安装包。

在所有历史版本的下载页面下载不同版本的MySQL即可,如下:

MySQL5.5.62的下载https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.62-winx64.zip,如下图:

 

MySQL5.6.48的下载https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.48-winx64.zip,如下图

 

MySQL5.7.30的下载https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-winx64.zip,如下图:

MySQL5.5.62的安装

解压缩后添加配置文件

我们将mysql-5.5.62-winx64.zip解压到我们想要安装的目录,然后打开,里面又几个常用的mysql配置文件,如下图:

my-huge.ini

my-innodb-heavy-4G.ini

my-large.ini

my-medium.ini

my-small.ini

这五个配置文件针对不同大小系统的样例配置文件,small medium large huge heavy依次递增。

我们这里是演示安装,不使用这些配置文件,使用我整理的一个配置文件,内容如下:

  1.  
    # mysql 客户端的参数配置
  2.  
    [client]
  3.  
    default-character-set=utf8
  4.  
    # bin/mysqld 程序的参数配置
  5.  
    [mysql]
  6.  
    default-character-set=utf8
  7.  
    # bin/mysqld 程序的参数配置
  8.  
    [mysqld]
  9.  
    ## 设置端口
  10.  
    port=3307
  11.  
    ## 设置字符集
  12.  
    ## 参考:https://docs.lvrui.io/2017/06/07/MySQL57%E5%AD%97%E7%AC%A6%E9%9B%86%E8%AE%BE%E7%BD%AE/
  13.  
    character-set-client-handshake=FALSE
  14.  
    character-set-server=utf8
  15.  
    collation-server=utf8_unicode_ci
  16.  
    init_connect='SET NAMES utf8'
  17.  
    ## 设置mysql的安装目录,可以不设置,默认会读取到 bin/mysqld 程序上级目录
  18.  
    basedir=C:\msf\mysql\mysql-5.5.62-winx64
  19.  
    ## 设置mysql数据库的数据的存放目录,可以不设置,默认会读取到 bin/mysqld 程序上级目录下的 data 目录
  20.  
    datadir=C:\msf\mysql\mysql-5.5.62-winx64\data
  21.  
    ## 设置默认时区
  22.  
    ## 参考:https://dev.mysql.com/doc/refman/5.6/en/time-zone-support.html
  23.  
    default-time-zone='+08:00'
  24.  
    ## 设置大小写是否敏感,1表示不区分大小写,也是windows系统中的默认值
  25.  
    ## 参考:https://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html
  26.  
    lower_case_table_names=1
  27.  
    ## 设置mysql的服务端标识,在做多个mysql服务间数据同步时用以区分不同的mysql服务
  28.  
    server-id=1
  29.  
    ## 是否开启log-bin日志记录,打开下面的注释就表示开启log-bin日志记录
  30.  
    log-bin=mysql-bin
  31.  
    ## 设置log-bin日志记录的模式,有 STATEMENT ROW MIXED 三种模式
  32.  
    ## 参考:https://dev.mysql.com/doc/refman/5.6/en/binary-log-setting.html
  33.  
    binlog-format=ROW
  34.  
    ## 是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
  35.  
    ## 参考:https://www.cnblogs.com/zping/p/9121959.html
  36.  
    symbolic-links=0
  37.  
    ## 给innodb表设置独立表空间
  38.  
    ## 参考:http://www.ttlsa.com/mysql/innodb-innodb_file_per_table/
  39.  
    innodb_file_per_table=1

根据配置文件的内容,我们在C:\msf\mysql\mysql-5.5.62-winx64\my.ini位置添加配置文件

测试启动

以管理员身份打开命令提示符窗口,执行下面的命令

C:\msf\mysql\mysql-5.5.62-winx64\bin\mysqld --defaults-file="C:\msf\mysql\mysql-5.5.62-winx64\my.ini"

启动效果如下图

 

测试连接

启动一个新的cmd窗口,执行下面的命令,测试连接mysql

C:\msf\mysql\mysql-5.5.62-winx64\bin\mysql -P 3307 -u root

由于默认的root密码为空,所以可以直接登录,如下图:

关闭测试服务

经过测试,我们的配置文件没有问题,可以正常的启动mysql,接下来我们暂时先关闭mysql服务,在测试连接mysql的cmd窗口中执行下面的命令来关闭mysql服务

C:\msf\mysql\mysql-5.5.62-winx64\bin\mysqladmin -P 3307 -u root shutdown

执行完命令后,启动mysql服务的cmd窗口中可能没有反应,如果没有反映的话,点一下回车,cmd就会回到可输入状态了,如下图:

添加windows服务,以windows服务的形式运行

接下来,我们将mysql5.5.62写入到windows的系统服务中,方便启动和停止,方法也很简单,但管理员身份打开的cmd窗口执行下面的命令就可以了

C:\msf\mysql\mysql-5.5.62-winx64\bin\mysqld install MySQL5_5_62_3307 --defaults-file="C:\msf\mysql\mysql-5.5.62-winx64\my.ini"

其中 MySQL5_5_62_3307 是我们自己命令的服务名称,这里使用mysql版本号和服务端口号来命名

执行效果,如下图所示

此时,我们mysql5.5.62的windows服务就安装成功了,安装完服务后,启动和停止就比较简单了,执行下面的命令就可以了,很简单

net start MySQL5_5_62_3307

net stop MySQL5_5_62_3307

在任务管理器中查看我们刚才添加并启动的服务,如下图

在任务管理器窗口,我们继续“打开服务”,在服务列表中查看,如下图

可以看到,我们添加的服务,默认是自动启动的,也就是说开机后会自动启动,如果不想开机启动的话,可以修改下启动类型。

我们继续打开服务的属性看下,如下图

可以看到,服务的“可执行文件的路径”就是我们刚才执行服务安装路径时的命令的一部分,这个服务启动时就是执行的我们测试启动时所执行的命令,如下

C:\msf\mysql\mysql-5.5.62-winx64\bin\mysqld --defaults-file="C:\msf\mysql\mysql-5.5.62-winx64\my.ini"

至此,我们的mysql5.5.62就安装完成了,我们再用数据连接工具Navicat for MySQL试一下,如下:

MySQL 5.6.48的安装

解压缩后添加配置文件

我们将mysql-5.6.48-winx64.zip解压到我们想要安装的目录,然后打开,如下图:

可以看到,这个版本中的根目录下,已经没有了那么多的样例配置文件,只有一个my-default.ini

这里同样是使用我整理的一个配置文件,但是将mysqld下的端口号修改为3308,同时也修改下basedir和basedata,如下:

根据配置文件的内容,我们在C:\msf\mysql\mysql-5.6.48-winx64\my.ini位置添加配置文件

测试启动

以管理员身份打开命令提示符窗口,执行下面的命令

C:\msf\mysql\mysql-5.6.48-winx64\bin\mysqld --defaults-file="C:\msf\mysql\mysql-5.6.48-winx64\my.ini"

这里有一个可能会遇到的一个错误,系统提示“缺少msvcr100.dll无法运行”,需要安装下vcredist_x64,可以到下面这个地址进行下载

https://www.microsoft.com/en-us/download/confirmation.aspx?id=14632

启动效果如下图

测试连接

启动一个新的cmd窗口,执行下面的命令,测试连接mysql

C:\msf\mysql\mysql-5.6.48-winx64\bin\mysql -P 3308 -u root

由于默认的root密码为空,所以可以直接登录,如下图:

关闭测试服务

经过测试,我们的配置文件没有问题,可以正常的启动mysql,接下来我们暂时先关闭mysql服务,在测试连接mysql的cmd窗口中执行下面的命令来关闭mysql服务

C:\msf\mysql\mysql-5.6.48-winx64\bin\mysqladmin -P 3308 -u root shutdown

执行完命令后,启动mysql服务的cmd窗口中可能没有反应,如果没有反映的话,点一下回车,cmd就会回到可输入状态了,如下图:

添加windows服务,以windows服务的形式运行

接下来,我们将mysql5.6.48写入到windows的系统服务中,方便启动和停止,方法也很简单,但管理员身份打开的cmd窗口执行下面的命令就可以了

C:\msf\mysql\mysql-5.6.48-winx64\bin\mysqld install MySQL5_6_48_3308 --defaults-file="C:\msf\mysql\mysql-5.6.48-winx64\my.ini"

其中 MySQL5_6_48_3308 是我们自己命令的服务名称,这里使用mysql版本号和服务端口号来命名

执行效果,如下图所示

此时,我们mysql5.6.48的windows服务就安装成功了,安装完服务后,启动和停止就比较简单了,执行下面的命令就可以了,很简单

net start MySQL5_6_48_3308

net stop MySQL5_6_48_3308

在任务管理器中查看我们刚才添加并启动的服务,如下图

在任务管理器窗口,我们继续“打开服务”,在服务列表中查看,如下图

可以看到,我们添加的服务,默认是自动启动的,也就是说开机后会自动启动,如果不想开机启动的话,可以修改下启动类型。

我们继续打开服务的属性看下,如下图

可以看到,服务的“可执行文件的路径”就是我们刚才执行服务安装路径时的命令的一部分,这个服务启动时就是执行的我们测试启动时所执行的命令,如下

C:\msf\mysql\mysql-5.6.48-winx64\bin\mysqld --defaults-file="C:\msf\mysql\mysql-5.6.48-winx64\my.ini"

至此,我们的mysql5.6.48就安装完成了,我们再用数据连接工具Navicat for MySQL试一下,如下:

MySQL 5.7.30的安装

解压缩后添加配置文件

我们将mysql-5.7.30-winx64.zip解压到我们想要安装的目录,然后打开,如下图:

 

可以看到,这个版本中的根目录下,已经没有了样例配置文件,同时data目录也没有了,所以这个版本的安装方式跟5.5和5.6略有不同。

这里同样是使用我整理的一个配置文件,但是将mysqld下的端口号修改为3309,同时也修改下basedir和basedata,如下:

根据配置文件的内容,我们在C:\msf\mysql\mysql-5.7.30-winx64\my.ini位置添加配置文件

测试启动

由于这个版本中并没有data目录,所以需要我们先执行下初始化操作

在管理员身份打开的命令提示符窗口中执行,注意一定要加--console参数,不然看不到生成的root初始密码

C:\msf\mysql\mysql-5.7.30-winx64\bin\mysqld --initialize --console

这里有一个可能会遇到的一个错误,系统提示“缺少msvcr120.dll无法运行”,需要安装下vcredist_x64 2013,可以到下面这个地址进行下载

https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=40784

initialize的执行结果如下图

注意,我标红圈起来的是root的初始密码

执行完成后,我们看下C:\msf\mysql\mysql-5.7.30-winx64\data,这个目录中已经有了类似5.5 5.6版本中data目录中的文件

然后执行下面的命令,测试启动,注意加--console参数,不然会没有任何的输出信息

C:\msf\mysql\mysql-5.7.30-winx64\bin\mysqld --defaults-file="C:\msf\mysql\mysql-5.7.30-winx64\my.ini" --console

启动效果如下图

测试连接

启动一个新的cmd窗口,执行下面的命令,测试连接mysql

C:\msf\mysql\mysql-5.7.30-winx64\bin\mysql -P 3309 -u root -p

<7.lazkbb=OE

5.7版本,root必须使用密码登录,而且使用初始密码等后,必须修改密码,不然无法执行任何的命令,如下图中的提示信息

所以我们需要先重置下root密码

set password = password('root');

重置root密码后就可以正常的执行命令了,如下图:

关闭测试服务

经过测试,我们的配置文件没有问题,可以正常的启动mysql,接下来我们暂时先关闭mysql服务,在测试连接mysql的cmd窗口中执行下面的命令来关闭mysql服务

C:\msf\mysql\mysql-5.7.30-winx64\bin\mysqladmin -P 3309 -u root -p shutdown

root

执行完命令后,启动mysql服务的cmd窗口中可能没有反应,如果没有反映的话,点一下回车,cmd就会回到可输入状态了,如下图:

添加windows服务,以windows服务的形式运行

接下来,我们将mysql5.7.30写入到windows的系统服务中,方便启动和停止,方法也很简单,但管理员身份打开的cmd窗口执行下面的命令就可以了

C:\msf\mysql\mysql-5.7.30-winx64\bin\mysqld install MySQL5_7_30_3309 --defaults-file="C:\msf\mysql\mysql-5.7.30-winx64\my.ini"

其中 MySQL5_7_30_3309 是我们自己命令的服务名称,这里使用mysql版本号和服务端口号来命名

执行效果,如下图所示

此时,我们mysql5.7.30的windows服务就安装成功了,安装完服务后,启动和停止就比较简单了,执行下面的命令就可以了,很简单

net start MySQL5_7_30_3309

net stop MySQL5_7_30_3309

在任务管理器中查看我们刚才添加并启动的服务,如下图

在任务管理器窗口,我们继续“打开服务”,在服务列表中查看,如下图

可以看到,我们添加的服务,默认是自动启动的,也就是说开机后会自动启动,如果不想开机启动的话,可以修改下启动类型。

 

我们继续打开服务的属性看下,如下图

可以看到,服务的“可执行文件的路径”就是我们刚才执行服务安装路径时的命令的一部分,这个服务启动时就是执行的我们测试启动时所执行的命令,不同的是我们没有添加--console参数,如下

C:\msf\mysql\mysql-5.7.30-winx64\bin\mysqld --defaults-file="C:\msf\mysql\mysql-5.7.30-winx64\my.ini"

 

至此,我们的mysql5.7.30就安装完成了,我们再用数据连接工具Navicat for MySQL试一下,如下:

 

总结

实现windows下不同版本mysql同时安装,首先是使用免安装版的mysql压缩包进行解压安装,其次是不同的版本要通过配置文件设置不同的端口,最后是将mysql服务写入windows的服务列表中(这样启动和关闭就很方便,设置开机启动或者不启动也很方便)。

本文说的是不同版本的mysql安装,其实相同版本同时部署多个mysql服务也是没问题的,只需要修改端口号、安装目录、数据目录即可,有兴趣的朋友可以尝试下。

 

声明:本片文章转载自https://blog.csdn.net/amnb123/article/details/107598902

 

 
posted on 2021-12-06 15:11  小米没吃饭  阅读(245)  评论(0编辑  收藏  举报