zoukankan      html  css  js  c++  java
  • Windows部署多版本Mysql服务

    前言

    本文介绍如何在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

     

     
  • 相关阅读:
    mysql自动增长怎么恢复从1开始
    Python 中的多维字典
    如何将JS里变量的值赋给文本框
    使用nagios+python监控nginx进程数
    python getopt使用
    Nagios安装完后status map,trends等页面访问出错之解决
    nagios监控3306端口
    AdventureWorks Databases 2008 下载地址
    multiselect获取选中的多个下拉项的值(逗号分割的字符串)
    用CSS让网页背景图片居中的方法
  • 原文地址:https://www.cnblogs.com/laogao123/p/15650036.html
Copyright © 2011-2022 走看看