需執行多個伺服器的原因有很多,比如使用者希望繞過最大檔案描述符的限制,還有是進行版本測試和提供專用服務等。執行多個伺服器比執行單個伺服器複雜很多,需注意以下問題:
在安裝不同版本的程式時,需分開目錄存放程式和資料目錄。如果同一版本的伺服器軟體,則程式目錄可一樣,但資料目錄則要不同。可用--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 設...