【MySQL進階】在一臺機器上運行多個MySQL實例

目錄

1.使用MySQL Installer安裝MySQL實例

1.1.去官網下載MySQL Installer

1.2.停止mysql服務?

1.3.為不同的版本指定不同的安裝目錄

2.配置不同版本的選項文件

2.1.修改數據目錄

2.2.修改基本目錄

2.3.修改端口號

2.4.設置?志?錄

2.5.配置臨時目錄

2.6.修改綁定地址

?2.7.檢驗是否配置成功

3.在多服務器環境中使用客戶端程序

3.1.配置MySQL環境變量

3.2.連接


有時候我們希望在一臺機器上運行多個MySQL實例,比如在開發環境測試新的MySQL版本,同時又要保證原有的版本不受影響;MySQL允許在一臺機器上安裝不同版本的發行版,比如同時運行5.7和8.0版本,只是要做一些相應的配置。

為了降低配置難度,本節將在Windows系統中使用安裝器演示配置多個MySQL實例的方法。

  • 一個mysql服務對外提供服務需要端口號,所以兩個mysql實例的端口號是不能相同的
  • 日志等其他自定義路徑根據版本號區分
  • 千萬不要讓兩個不同的服務同時修改同一個目錄下的同一個文件?

1.使用MySQL Installer安裝MySQL實例

1.1.去官網下載MySQL Installer

注意:我的電腦已經安裝了mysql8.0

接下來我將下載不同版本的MySQL Installer,并完成安裝,安裝過程如下:

首先我們去官網:MySQL

?

1.2.停止mysql服務?

等待下載完成之后

我們先不要這么著急去安裝,我們得先把原來的mysql8.0的服務給我停止掉,因為我們安裝mysql5.7的時候它會自動啟動去加載那些配置文件啥的。

所以為了防止沖突,所以我們需要停止本機正在運行的mysql服務。?

?我們點擊停止按鈕,一定要出現下面這個情況,才算是停止成功了啊!!

那么在Linux下,我們只需執行

systemctl stop mysql

?即可停止mysq服務

1.3.為不同的版本指定不同的安裝目錄

首先我們得知道我們機器上已經安裝好的mysql8.0的安裝路徑是哪一個?

我們可以

?

這個D:\MySQL\MySQL Server 8.0\就是我們mysql8.0的安裝路徑。我們這次安裝千萬不要安裝到這里來了。

接著我們打開我們剛剛下載的那個mysql5.7的安裝包

接下來是至關重要的一步,指定安裝路徑

mysql官方其實很惡心,為了阻止我們更改安裝路徑煞費苦心。

??

這里就能更改我們的安裝路徑了,注意不能和原來那個mysql8.0的安裝路徑重復。

接著我們點擊OK即可,然后點擊next

我們點擊next?

?點擊Execute

點擊next?

這里端口號不要再寫3306了,必須改成別的。??

在這里我們輸入我們的密碼

?

?自啟動一定要關閉啊!!!

?

直接next即可?

?點擊Execute,等待完成,然后點擊Finish

這個時候就安裝完成了,我們去看看

看看它的安裝路徑是啥

沒有問題,這個安裝路徑和mysql8.0區分開來了。

我們設置的端口號是3308,我們可以去看看

很好,沒有問題。?

這個時候我們再去把停止的mysql8.0進行啟動一下

現在mysql8.0和mysql5.7在同時運行了。我們再看看端口號

?都沒有問題。現在就安裝完成了。我們現在這個機器就已經運行了mysql5.7和mysql8.0了。

我們也可以去目錄里面看看

2.配置不同版本的選項文件

????????不同的MySQL版本啟動時,會在默認的數據?錄下讀取相應版本的 my.ini ?件,?如5.7版本 啟動時會讀取D:\MySQL\MySQLServer5.7\my.ini?件,8.0版本啟動時會讀取 D:\MySQL\MySQLServer8.0\my.ini?件,為了讓不同版本的實例在啟動時避免沖 突,?如端?沖突,需要對不同版本的實例進??些差異配置。

2.1.修改數據目錄

現在mysql8.0和mysql5.7的數據目錄分別是D:\MySQL\MySQL Server 8.0\Data,D:\MySQL\MySQL Server 5.7\Data,我現在想要對它們進行集中管理,我想讓這兩個數據目錄分別修改為下面這個情況。

# 因為路徑中有空格,所以要?雙引號引起來# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld節點
datadir= "D:/MySQL/databases/data5.7" #5.7版本的?定義的基本?錄# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld節點
datadir= "D:/MySQL/databases/data8.0" #8.0版本的?定義的基本?錄

但是修改數據目錄可不僅僅只是修改配置文件這么簡單。?我們往下看

首先我們創建D:/MySQL/databases/,

然后我們要去 將D:\MySQL\MySQL Server 8.0\Data,D:\MySQL\MySQL Server 5.7\Data

分別拷貝到這里然后分別改名為data8.0,data5.7。

好,我們現在就來修改我們的配置文件。


  • 修改MySQL8.0的配置文件

在配置選項之前,我們需要先備份一下我們的配置文件。

?

現在我們就可以去修改我們原來的配置文件了

?

?找到下面這個來

?修改datadir,改成D:/MySQL/databases/data8.0

?保存退出即可


  • 接下來來修改mysql5.7的

還是不要忘記了保存副本

然后我們進去修改一下

?

保存退出即可。

2.2.修改基本目錄

?使?選項--basedir=dir_name 為每個實例指定基本?錄,通常指定為安裝?錄,不同的實例 會?動使?不同的數據?錄、?志?件和PID?件,這些?件的默認值都是相對于基本?錄的,當 然也可以?定義這些?件:

# 路徑中的空格要?雙引號引起來# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld節點
basedir= "D:\MySQL\MySQL Server 5.7" #5.7版本的?定義的基本?錄# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld節點
basedir= "D:\MySQL\MySQL Server 8.0" #8.0版本的?定義的基本?錄

這個其實我們沒必要改

2.3.修改端口號

通過選項--port 設置TCP/IP連接的端?號。如果主機有多個?絡地址,通過設置 bind_address 系統變量指定不同偵聽地址

# 路徑中的空格要?雙引號引起來# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld節點
port=3308 #5.7版本的?定義的端口號# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld節點
port=3306 #8.0版本的?定義的端口號

這個其實我們已經檢查過了,就不說了。

2.4.設置?志?錄

默認情況下如果開啟?般查詢?志,慢查詢?志,錯誤?志,?進制?志,會在默認的數據?錄下? 成?志?件,也可以?定義?錄。

首先我們需要準備下面這個目錄


  • 對于MySQL8.0

我們發現系統自動開啟了這些日志的選項

接下來我把這些換成下面這個?

[mysqld]  # MySQL 服務器核心配置節點
# ----- 日志輸出目標設置 -----
log-output=FILE  # 指定所有日志輸出到文件系統(非數據庫表)# ----- 一般查詢日志配置 -----
general-log=0  # 關閉一般查詢日志(記錄所有客戶端執行的SQL語句)
general_log_file=D:/MySQL/log/log8.0/general.log  # 一般查詢日志存儲路徑# ----- 慢查詢日志配置 -----
slow-query-log=1  # 啟用慢查詢日志(記錄執行時間過長的查詢)
slow_query_log_file=D:/MySQL/log/log8.0/slow_query.log  # 慢查詢日志存儲路徑
long_query_time=10  # 定義慢查詢閾值(單位:秒,≥10秒的查詢會被記錄)# ----- 錯誤日志配置 -----
log-error=D:/MySQL/log/log8.0/error_log.err  # 錯誤日志存儲路徑(記錄服務啟動/運行中的關鍵錯誤)# ----- 二進制日志配置 -----
log-bin=D:/MySQL/log/log8.0/bin_log  # 二進制日志存儲路徑(用于主從復制和數據恢復)

保存即可。


  • 對于MySQL5.7

我們也是將其修改成下面這個

[mysqld]  # 服務器配置節點
# ----- 日志輸出目標設置 -----
log-output=FILE  # 指定日志輸出到文件(非表)# ----- 一般查詢日志配置 -----
general-log=0  # 禁用一般查詢日志(記錄所有SQL操作)
general_log_file=D:/MySQL/log/log5.7/general.log  # 一般查詢日志存儲路徑# ----- 慢查詢日志配置 -----
slow-query-log=1  # 啟用慢查詢日志
slow_query_log_file=D:/MySQL/log/log5.7/slow_query.log  # 慢查詢日志存儲路徑
long_query_time=10  # 定義慢查詢閾值(執行時間≥10秒的查詢)# ----- 錯誤日志配置 -----
log-error=D:/MySQL/log/log5.7/error_log.err  # 錯誤日志存儲路徑(記錄啟動/運行錯誤)# ----- 二進制日志配置 -----
log-bin=D:/MySQL/log/log5.7/bin_log  # 二進制日志存儲路徑(用于主從復制/數據恢復)

2.5.配置臨時目錄

mysql在運行過程中還是會產生很多臨時文件,這些臨時文件可不能亂放,所以我們需要對它們進行統一管理。

# 路徑中的空格要?雙引號引起來# D:\MySQL\MySQL Server 5.7\my.ini
[mysqld]  # mysqld節點
tmpdir=D:/MySQL/temp/temp5.7# D:\MySQL\MySQL Server 8.0\my.ini
[mysqld]  # mysqld節點
tmpdir=D:/MySQL/temp/temp8.0

首先我們需要準備這個目錄?

然后我們就去配置一下,那具體過程我就不說了。

2.6.修改綁定地址

對于bind_address,還是很有必要修改的,這決定了我們能不能連接上mysql服務器

這個大家自己去修改即可。

?2.7.檢驗是否配置成功

現在我們就得去重新啟動我們的mysql服務,看看有沒有配置成功。

注意:如果重新啟動不了,就說明我們配置失敗了。就像下面這個情況

我們點擊確定之后始終啟動不了我們的mysql服務

這個時候要重新檢查一下我們的配置過程是不是出問題了,包括路徑的名稱,選項等

這個時候我們還是需要去檢查一下端口號有沒有正常運行

沒有問題,都在正常運行。

現在就正式的配置成功了。

3.在多服務器環境中使用客戶端程序

3.1.配置MySQL環境變量

為了連接不同版本的mysql服務器,我們需要借助命令行工具。

但是如果我們不配置環境變量的話,就會出現下面這個情況

我們不能從任意位置訪問mysql服務器

?這就需要我們去配置環境變量。


  • 1.找到MySQL的安裝位置

一般默認的是C:\Program Files,我的是在D盤,這個沒有很大要求

如果不記得自己安裝的路徑了,可以通過從“服務”中找到MySQL,點擊“屬性”即可看到安裝路徑

?我們可以先看看Mysql8.0的安裝路徑

?

我們只需要bin前面那一部分,即D:\MySQL\MySQL Server 8.0。這就是mysql8.0的安裝路徑。

至于mysql5.7的安裝路徑,則是D:\MySQL\MySQL Server 5.7


  • 2. 找到環境變量

點擊電腦,選擇屬性,點擊“高級系統設置”

變量名變量值
MYSQL57_HOMED:\MySQL\MySQL Server 5.7
MYSQL80_HOMED:\MySQL\MySQL Server 8.0

系統變量的框框里點擊新建,創建變量名MYSQL57_HOME,路徑為安裝MySQL5.7的目錄下,即bin的上一層目錄D:\MySQL\MySQL Server 5.7

系統變量的框框里點擊新建,創建變量名MYSQL80_HOME,路徑為安裝MySQL8.0的目錄下,即bin的上一層目錄D:\MySQL\MySQL Server 8.0

?


  • 3.編輯path系統變量,將?%MYSQL80_HOME%\bin?和?%MYSQL57_HOME%\bin添加到path變量后

添加下面這兩個即可?

然后按確定即可。

現在我們就可以使用cmd命令行來連接我們的mysql服務器了。

3.2.連接

使用mysql客戶端程序,根據不同版本的MySQL實例配置的IP和端口號,指定相應的選項,連接不同的MySQL服務器。 指定端口通過--port=端口號選項實現, 如果綁定了不同的網卡通過--host=host_name選項實現, 如果不指定--host選項,則使用默認值localhost。

如果說我們想要連接mysql5.7版本的,我們的連接命令就應該是下面這樣子

mysql --port=3308 -u root -p

?

?如果說我們想要連接mysql8.0版本的,我們的連接命令就應該是下面這樣子

mysql --port=3306 -u root -p

很好。

現在就算是完全成功了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87955.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87955.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87955.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

verilog中timescale指令的使用

1.timescale指令格式timescale <時間單位> / <時間精度>時間單位&#xff1a;它確定了仿真中時間值的基本單位。比如 1ns 就意味著時間值是以納秒為單位來計量的。 時間精度&#xff1a;該參數決定了時間值能夠表示的最小分辨率。例如 1ps 表示時間可以精確到皮秒級…

08_Excel 導入 - 用戶信息批量導入

08_Excel 導入 - 用戶信息批量導入 1. VO 類 java復制編輯Data AllArgsConstructor NoArgsConstructor public class UserInfoBatch4ExcelReq {ExcelProperty(value "用戶姓名")Schema(description "用戶姓名")private String userName;ExcelProperty(va…

【深度學習新浪潮】什么是世界模型?

世界模型(World Model)是人工智能領域中一類通過構建環境的抽象表示來理解和預測外部世界的系統。它通過整合多模態數據(如視覺、語言、傳感器信號)形成對環境的動態認知,并支持智能體在復雜場景中進行決策與規劃。以下從核心概念、解決的問題、關鍵研究、技術路線、現狀與…

React + Express 傳輸加密以及不可逆加密

一、傳輸加密這里用 對稱加密模式 ASE實現。React 前端const CryptoJS require("crypto-js");// 示例1&#xff1a;ECB模式&#xff08;無需IV&#xff09; const encryptECB (plainText, key) > {return CryptoJS.AES.encrypt(plainText, key, {mode: CryptoJS…

瀏覽器(Chrome /Edge)高效使用 - 內部命令/快捷鍵/啟動參數

今天在CSDN上傳文件,提交總是提示續傳失敗,重試了五六次才想到獲取是科學上網的問題,這個時候其實只要重啟瀏覽器即可,但如果手動關閉瀏覽器再次打開,瀏覽器不會恢復之前的多開窗口(會恢復最后一個窗口內多開的標簽頁,但不會恢復其他窗口)。想了想記得 Chrome 流行的時…

【PTA數據結構 | C語言版】連續子序列最大和

本專欄持續輸出數據結構題目集&#xff0c;歡迎訂閱。 文章目錄 題目代碼 題目 給定 n 個整數組成的序列 { a1 ,a2 ,?,an }&#xff0c;“連續子序列”被定義為 { ai ,ai1 ,?,aj }&#xff0c;其中 1≤i≤j≤n。“連續子序列最大和”則被定義為所有連續子序列元素的和中最大…

Vrrp配置和原理

Vrrp配置和原理 文章目錄Vrrp配置和原理概述物理與邏輯拓撲重點vrid虛擬路由器虛擬IP地址及虛擬MAC地址超時時間計算-MASTER_DOWNvip 管理員手動指定方法Master路由器Backup路由器PriorityVRRP報文格式VRRP狀態機從Backup到masterVRRP協議狀態二.優先級一樣比較接口IPVRRP優先級…

可編輯59頁PPT | 某大型集團人工智能數字化轉型SAP解決方案

薦言摘要&#xff1a;某大型集團人工智能數字化轉型中&#xff0c;SAP解決方案扮演著智能中樞角色&#xff0c;深度融合AI技術與核心業務場景&#xff0c;破解傳統系統“數據孤島流程僵化”雙重困局。針對集團跨產業、多業態特點&#xff0c;方案以SAP S/4HANA為數據底座&#…

【RK3568 驅動開發:實現一個最基礎的網絡設備】

RK3568 驅動開發&#xff1a;實現一個最基礎的網絡設備一、引言二、編寫網絡設備驅動代碼1. 核心數據結構與接口2. 核心功能實現3. 網絡命名空間管理4.源代碼三、編譯與驗證1.加載模塊2.驗證網絡四、注意事項一、引言 RK3568 作為一款高性能 ARM 架構處理器&#xff0c;廣泛應…

CAIDCP系列對話:AI 驅動安全

數字時代&#xff0c;AI浪潮翻涌&#xff0c;網絡安全攻防戰已悄然升級&#xff1a; 某工業控制系統遭AI驅動勒索攻擊&#xff1a;攻擊者借 AI 精準捕捉異常網絡掃描、遠程 PowerShell 痕跡&#xff0c;瞬間加密文件索要贖金&#xff1b; 另一邊&#xff0c;某大型科技公司用AI…

ARMv8 沒開mmu執行memset引起的非對齊訪問異常

最近在haps上驗證一個新的芯片&#xff0c;記錄一下memset訪問出錯的問題。在沒開mmu和cache的情況下&#xff0c;對全局變量指針進行memset清零操作&#xff0c;發現每次都會出現異常。最后發現是沒開mmu導致出現了數據非對齊訪問導致報錯。排查EC區域發現是0x25&#xff0c;產…

基于LiveKit Go 實現騰訊云實時音視頻功能

詳細的生產部署建議&#xff0c;適用于 LiveKit Go 服務器 Web 客戶端 TURN/HTTPS。 1. 服務器準備 推薦使用云服務器&#xff08;如阿里云、騰訊云、AWS、Azure等&#xff09;&#xff0c;公網IP&#xff0c;帶寬建議≥10Mbps。系統推薦 Ubuntu 20.04/22.04 或 CentOS 7/8&…

三位一體:Ovis-U1如何以30億參數重構多模態AI格局?

1. 時代命題&#xff1a;多模態統一模型的破局之戰當GPT-4o以萬億級參數構建多模態帝國時&#xff0c;中國AI軍團正在書寫另一種答案。Ovis-U1用30億參數證明&#xff1a;參數量并非決定性因素&#xff0c;架構創新與訓練策略的化學反應&#xff0c;同樣能催生出改變游戲規則的…

圖像處理基礎:鏡像、縮放與矯正

在圖像處理中&#xff0c;鏡像、縮放和矯正操作是常見的圖像變換手段。這些操作可以幫助我們對圖像進行調整&#xff0c;以滿足不同的需求。本文將詳細介紹這三種操作的原理和實現方法&#xff0c;并通過代碼示例展示它們的實際應用。一、圖片鏡像旋轉1.1 什么是鏡像旋轉&#…

「Java案例」猜數游戲

案例實現 猜數字游戲 設計一個三位數的猜數游戲,三位數隨機生成。程序提示用戶輸入一個三位的數字,依照以下的規則決定贏取多少獎金:1) 如果用戶輸入的數字和隨機數字完全一致,輸出:“恭喜恭喜!完全猜對了!獲得三個贊!”2) 如果用戶輸入的數字覆蓋了隨機生成的所有數…

創客匠人解析創始人 IP 內卷:知識變現時代的生存邏輯與破局路徑

當知識付費行業進入 “存量競爭” 階段&#xff0c;創始人 IP 的 “內卷” 已非選擇而是必然。創客匠人在服務數萬知識創業者的實踐中發現&#xff0c;那些實現逆勢增長的案例&#xff0c;其核心差異往往在于創始人是否具備 “從幕后走到臺前” 的決心與能力 —— 這種內卷并非…

250705-Debian12-sudo apt update加速+配置RDP遠程桌面環境+設置FRP服務為開機啟動項

A. 實現sudo apt update加速 在 Debian 12 上運行 sudo apt update 很慢的常見原因包括&#xff1a; &#x1f50d; 一、常見原因分析 使用了國外的軟件源 默認 Debian 安裝源多數是國際服務器&#xff0c;國內訪問會非常慢。 DNS 解析慢或失敗 軟件源地址解析時間長&#xf…

數學視頻動畫引擎Python庫 -- Manim Voiceover 語音服務 Speech Services

文中內容僅限技術學習與代碼實踐參考&#xff0c;市場存在不確定性&#xff0c;技術分析需謹慎驗證&#xff0c;不構成任何投資建議。 Manim Voiceover 是一個為 Manim 打造的專注于語音旁白的插件&#xff1a; 直接在 Python 中添加語音旁白&#xff1a; 無需使用視頻編輯器&…

C++11 forward_list 從基礎到精通:原理、實踐與性能優化

文章目錄一、為什么需要 forward_list&#xff1f;二、基礎篇&#xff1a;forward_list 的核心特性與接口2.1 數據結構與迭代器2.2 常用接口速覽2.3 基礎操作示例&#xff1a;從初始化到遍歷2.3.1 初始化與遍歷2.3.2 插入與刪除&#xff1a;before_begin 的關鍵作用三、進階篇&…

物聯網技術的核心組件與發展趨勢(截至2025年)

一、物聯網技術的核心組件物聯網&#xff08;IoT&#xff09;技術體系由感知層、網絡層、平臺層、應用層和安全層構成&#xff0c;各層技術協同工作&#xff0c;實現物理世界與數字世界的深度融合。1. 感知層&#xff1a;數據采集與交互傳感器技術&#xff1a;類型&#xff1a;…