前言
本文介绍如何在windows中快速的同时安装多个不同版本的mysql数据库,自定义端口,自定义存储位置,自定义是否开机启动mysql服务,可以方便的在本地测试不同版本的mysql数据库。
实验环境
win10版本:Microsoft Windows [版本 10.0.18363.900] x64
下载社区版的MySQL安装包
开发人员专区
下载中心
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依次递增。
我们这里是演示安装,不使用这些配置文件,使用我整理的一个配置文件,内容如下:
-
-
[]
-
default-character-set=utf8
-
-
[]
-
default-character-set=utf8
-
-
[]
-
-
port=3307
-
-
-
character-set-client-handshake=FALSE
-
character-set-server=utf8
-
collation-server=utf8_unicode_ci
-
init_connect='SET NAMES utf8'
-
-
basedir=C:\msf\mysql\mysql-5.5.62-winx64
-
-
datadir=C:\msf\mysql\mysql-5.5.62-winx64\data
-
-
-
default-time-zone='+08:00'
-
-
-
lower_case_table_names=1
-
-
server-id=1
-
-
log-bin=mysql-bin
-
-
-
binlog-format=ROW
-
-
-
symbolic-links=0
-
-
-
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