在一台機子上執行多個MySQL伺服器

2021-06-14 21:05:34 字數 2852 閱讀 8934

需執行多個伺服器的原因有很多,比如使用者希望繞過最大檔案描述符的限制,還有是進行版本測試和提供專用服務等。執行多個伺服器比執行單個伺服器複雜很多,需注意以下問題:

在安裝不同版本的程式時,需分開目錄存放程式和資料目錄。如果同一版本的伺服器軟體,則程式目錄可一樣,但資料目錄則要不同。可用--basedir=dir_name和--datadir=dir_name兩個啟動選項指時這兩個目錄。

要為不同的伺服器指定不時的--port=port_name(tcp/ip監聽埠),--socket=file_name(套接字檔名)和--pid-file=file_name(程序id檔案)值。

如果啟用了日誌功能,就要為不同的伺服器指定不同的日誌檔名。

在windows平台上,被安裝為服務的多個mysql伺服器必須有不同的服務名。

多伺服器環境下選項檔案的配置方法:

使用--defaults-file選項指定每個選項檔案,這樣,每個伺服器就不會去讀/etc/my.cnf這些配置檔案,而會使用你所指定的配置檔案。

可把一些公共的選項放到/etc/my.cnf檔案裡,再用--defaults-extra-file選項指出特定伺服器的特定選項檔案。這樣就不用在所有的配置檔案時重複公共的選項。

用mysql_multi指令碼啟動伺服器,它允許我們把所有的選項放到同乙個選項檔案裡。每乙個伺服器對應該檔案中的乙個選項組。

下面介紹用mysql_multi指令碼啟動多伺服器的方法。

為每個伺服器編乙個編號***,對應選項檔案的[mysqld***]選項組。mysql_multi本身要用到的選項可放到[mysqld_multi]裡。這樣/etc/my.cnf選項配置檔案看起來就象下面這樣:

[mysqld001]

basedir=/usr/local/mysql/001

datadir=/usr/local/mysql/001/data

mysqld=/usr/local/mysql/001/bin/mysqld_safe

socket=/usr/local/mysql/001/mysql.sock

port=3306

local-infile=1

user=mysqladm

log=log

log-update=update-log

innodb_data_file_path=ibdata1:10m

[mysqld002]

basedir=/usr/local/mysql/002

datadir=/usr/local/mysql/002/data

mysqld=/usr/local/mysql/002/bin/mysqld_safe

socket=/usr/local/mysql/002/mysql.sock

port=3307

local-infile=1

user=mysqladm

log=log

log-update=update-log

innodb_data_file_path=ibdata1:10m

...配置好選項檔案後,就可用以下命令啟動伺服器:

% mysqld_multi --no-log start 001,002      

#啟動001和002兩個伺服器,並把啟動資訊傳送到控制台,也可用區間的形式給出伺服器編號

用以下命令可檢視伺服器狀態:

% mysqld_multi --no-log --user=root --password=password report 001

可用以下命令停止mysql伺服器:

% mysqld_multi --no-log --user=root --password=password stop 001

在windows平台下執行多個mysql伺服器的方式有兩種,一種是執行同乙個mysql程式的兩個例項,一種是執行多個windows服務,下面分別介紹:

第一種情況需設定兩個選項檔案,指定不同的資料目錄,如:

c:\mysql\my.cnf1

[mysqld]

basedir=c:/mysql

datedir=c:/mysql/data1

port=3306

c:\mysql\my.cnf2

[mysqld]

basedir=c:/mysql

datadir=c:/mysql/data2

port=3307

在啟動伺服器時,用--defaults-file選項指出選項檔案即可。如:

c:\> mysqld --defaults-file=c:\mysql\my.cnf1

c:\> mysqld --defaults-file=c:\mysql\my.cnf2

在mysql 4.0.2版本開始,可以把mysql安裝為乙個服務,並可指定乙個服務名,如:

c:\> mysql-nt --install service_name

在mysql 4.0.3開始,安裝服務還支援--defaults-file=file_name選項

這 樣,我們就可把mysql安裝為一系列不同的服務,如果不指定service_name,則安裝的服務名預設為mysql,如果指定 service_name,則安裝的服務名為指定的service_name,並對應選項檔案中的[service_name]選項組。以預設服務名執行 的伺服器還支援乙個名為mysql的命名管道,而明確給出服務名的伺服器將只監聽tcp/ip連線而不支援命名管道--除非還用socket選項明確指定 乙個套接字檔案。

移除服務需先用mysqladmin shutdown命令停掉伺服器,再執行以下命令:

c:\> mysql-nt --remove                 #移除預設的服務

c:\> mysql-nt --remove service_name    #移除指定服務

在一台機器上執行多個mysql

在centos7以下進行安裝 centos7可以直接yum安裝mariadb資料庫,有webtatic源就可以 在同一臺機器上進行執行兩個資料庫時,建議還是進行原始碼安裝資料庫庫,因為原始碼安裝時可以自己定義目錄的位置 可參照 對於用yum安裝的mysql,是使用一台機器安裝兩個資料庫,使用不同的m...

怎樣在一台機器上開啟多個mysql服務

怎麼在一台機器上開啟多個mysql服務?1。複製mysql安裝目錄下的所有檔案到另外的資料夾,最好放到其他盤。修改一下配置檔案裡面的資料目錄和安裝目錄,以及伺服器端口號。2。有兩種方式可以開啟mysql服務。第一種是windows服務方式cmd下執行 cd 目錄 mysqld nt install ...

git 在一台機器上配置多個賬戶

前提 這個教程能教你如何生成ssh key,以及如何新增ssh key。補充一點,如何設定user.name和user.email,命令如下 1 設定區域性的user.name和user.email git config user.name git config user.email com 2 設...