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

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章