MySQL 是一種常見的數(shù)據(jù)庫(kù)管理系統(tǒng),它支持單機(jī)多實(shí)例的部署方式。在一臺(tái)服務(wù)器上啟動(dòng)多個(gè) MySQL 實(shí)例,可以讓不同的應(yīng)用程序或不同的用戶使用獨(dú)立的數(shù)據(jù)庫(kù)資源,以增強(qiáng)安全性和可維護(hù)性。下面我們來看一下如何配置和管理 MySQL 單機(jī)多實(shí)例。
首先,我們需要為每個(gè)實(shí)例創(chuàng)建一個(gè)獨(dú)立的 MySQL 配置文件。在 Linux 系統(tǒng)中,通常位于 /etc/my.cnf.d 目錄下,使用類似以下的語(yǔ)法創(chuàng)建一個(gè)新的配置文件:
[mysqld_multi] mysqld = /usr/bin/mysqld_safe [mysqld1] port = 3307 datadir = /var/lib/mysql1 socket = /var/lib/mysql/mysql.sock1 [mysqld2] port = 3308 datadir = /var/lib/mysql2 socket = /var/lib/mysql/mysql.sock2
這個(gè)示例配置文件定義了兩個(gè) MySQL 實(shí)例,分別監(jiān)聽在 3307 和 3308 端口上,數(shù)據(jù)目錄分別為 /var/lib/mysql1 和 /var/lib/mysql2。注意到每個(gè)實(shí)例的 socket 都不同,這是為了避免端口被占用的沖突。
接下來,我們可以使用 mysqld_multi 工具來管理這些實(shí)例。mysqld_multi 是 MySQL 自帶的工具,它可以幫助我們啟動(dòng)、停止、重啟和查詢實(shí)例的狀態(tài)。例如,以下命令可以啟動(dòng)所有的實(shí)例:
mysqld_multi start
可以使用以下命令來停止指定的實(shí)例:
mysqld_multi stop 1
其中的數(shù)字 1 代表第一個(gè)實(shí)例的編號(hào)。如果想查看所有實(shí)例的狀態(tài),可以執(zhí)行以下命令:
mysqld_multi report
最后,我們需要使用不同的用戶名和密碼來登錄不同的實(shí)例。例如,使用以下語(yǔ)法連接第一個(gè)實(shí)例:
mysql -u root -p -S /var/lib/mysql/mysql.sock1
這個(gè)命令會(huì)讓 MySQL 客戶端連接到指定的 socket 文件,以使用第一個(gè)實(shí)例的數(shù)據(jù)。
總的來說,MySQL 單機(jī)多實(shí)例是一種非常實(shí)用的部署方式。通過使用不同的配置文件和實(shí)例,我們可以輕松地管理多個(gè)數(shù)據(jù)庫(kù)資源,并提高系統(tǒng)的可用性和安全性。