MySQL 多實(shí)例配置
前面介紹如何在 Windows 、Linux 下安裝最新版 MySQL ,本節(jié)主要介紹如何在同一臺(tái)主機(jī)上配置多實(shí)例 MySQL。
1. 端口號(hào)概念
所謂的端口,就好像是門牌號(hào)一樣,客戶端可以通過(guò) ip 地址找到對(duì)應(yīng)的服務(wù)器端,但是服務(wù)器端是有很多端口的,每個(gè)應(yīng)用程序?qū)?yīng)一個(gè)端口號(hào),通過(guò)類似門牌號(hào)的端口號(hào),客戶端才能真正的訪問(wèn)到該服務(wù)器。為了對(duì)端口進(jìn)行區(qū)分,將每個(gè)端口進(jìn)行了編號(hào),這就是端口號(hào) 。
而 MySQL 服務(wù)默認(rèn)指定的端口號(hào)為 3306,這個(gè)在之前介紹安裝 MySQL 的時(shí)候,其中配置 my.ini 文件的內(nèi)容時(shí)候,其中就有端口號(hào)配置,內(nèi)容如下:
2. MySQL 多實(shí)例應(yīng)用場(chǎng)景
企業(yè)在項(xiàng)目開(kāi)發(fā)過(guò)程中,會(huì)有各種各樣差異化的功能需求,這些不同的功能需求可能對(duì) MySQL 版本有著不同的要求。
例如某公司官網(wǎng)開(kāi)發(fā)時(shí),使用的是 MySQL5.1 版本,但又有了一個(gè)新的開(kāi)發(fā)項(xiàng)目進(jìn)行,新的項(xiàng)目要求 MySQL 版本至少要 MySQL5.7,這時(shí)候假如只有一臺(tái)服務(wù)器的情況下,就需要配置兩種不同版本的 MySQL。
對(duì)于操作系統(tǒng)來(lái)說(shuō),一個(gè)端口號(hào)只允許一個(gè)軟件服務(wù)占用,但如果不進(jìn)行相應(yīng)的處理,MySQL 默認(rèn)端口號(hào)是 3306,這會(huì)導(dǎo)致不同實(shí)例的 MySQL 之間會(huì)有占用端口號(hào)沖突的情況,從而無(wú)法正常運(yùn)行。
而對(duì)于擁有更多業(yè)務(wù)的企業(yè)來(lái)說(shuō),配置多實(shí)例 MySQL 也是為了更好地方便管理,之前介紹過(guò)安裝最新版 MySQL,并且啟動(dòng) 8.0 版本的 MySQL 的默認(rèn)端口是 3306。本小節(jié)為了演示方便,都使用 MySQL8.0 配置多實(shí)例。
3.安裝 MySQL 多實(shí)例步驟
前面章節(jié)介紹過(guò) Windows 下安裝最新版 MySQL,這里我們把下載好的安裝包復(fù)制兩份并分別重新命名為 “mysql3308”、“mysql3309”,如圖所示:
接下來(lái)介紹如何安裝啟動(dòng)端口號(hào)分別為 3308、3309 的 MySQL 實(shí)例,如果想要配置更多 MySQL 實(shí)例,也可參考此方法新增多個(gè) MySQL 實(shí)例。
1. 進(jìn)入"mysql3308"目錄,新建 my.ini" 文件,內(nèi)容如下:
[mysqld]
# 設(shè)置3308端口
port=3308
# 設(shè)置mysql的安裝目錄
basedir=D:\WWW\mysql\mysql3308
# 設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄
datadir=D:\WWW\mysql\mysql3308\data
# 允許最大連接數(shù)
max_connections=200
#允許連接失敗的次數(shù)。防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫(kù)系統(tǒng)
max_connect_errors=10
# 服務(wù)端使用的字符集默認(rèn)為UTF8
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎
default-storage-engine=INNODB
# 默認(rèn)使用“mysql_native_password”插件認(rèn)證
default_authentication_plugin=mysql_native_password
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8
[client]
# 設(shè)置mysql客戶端連接服務(wù)端時(shí)默認(rèn)使用的端口
port=3308
default-character-set=utf8
如下圖所示 :
2. 以管理員身份打開(kāi) cmd 命令,進(jìn)入 D:WWW\mysql\mysql3308\bin
目錄,執(zhí)行初始化命令,命令如下:
命令 : mysqld --initialize --console
初始化成功如下圖所示:
3. 加載 MySQL 服務(wù),注意之前安裝 MySQL 已經(jīng)加載過(guò) MySQL 服務(wù),為了防止沖突,需要區(qū)分,命令如下:
命令 : mysqld install mysql3308
加載安裝成功如下圖所示:
4. 此時(shí)可以啟動(dòng) mysql3308 服務(wù)了,啟動(dòng)命令如下:
命令 : net start mysql3308
啟動(dòng)成功如下圖所示:
5. 用 3308 端口號(hào)登錄 MySQL,登錄命令如下:
命令 : mysql -uroot -p -P3308
登錄過(guò)程如圖所示:
登錄成功之后如下圖所示:
6. 至此 安裝 3308 端口 MySQL 實(shí)例完成,后續(xù)參照此方法繼續(xù)完成 3309 號(hào)端口 MySQL 服務(wù)即可,每次新增一個(gè)實(shí)例要保證 my.ini 配置文件端口號(hào)配置不沖突即可,安裝 3309 端口號(hào)實(shí)例如下圖所示:
以上為配置文件 my.ini 內(nèi)容,下圖為 mysql3309 服務(wù)啟動(dòng)過(guò)程圖:
3. 小結(jié)
本小節(jié)介紹了如何在同一臺(tái)主機(jī)操作系統(tǒng)上配置多個(gè) MySQL 實(shí)例,這些不同的 MySQL 服務(wù)互相獨(dú)立,分開(kāi)管理,需要注意的是每個(gè) MySQL 服務(wù)需要使用一個(gè)唯一的端口號(hào),與其他類似服務(wù)之間也是如此,不能和其他類似軟件服務(wù)之間有端口號(hào)沖突,負(fù)責(zé)會(huì)導(dǎo)致 MySQL 服務(wù)無(wú)法正常運(yùn)行。