top
Loading...
5.12.2.在Unix中運行多個服務器
5.12.2. 在Unix中運行多個服務器

Unix中運行多個服務器最容易的方法是使用不同的TCP/IP端口sUnix套接字文件編譯,因此每個實例在不同的網絡接口偵聽。另外,每個安裝應在不同的基礎目錄中編譯,那將自動為你的每個服務器產生使用不同的編譯進來的數據目錄、日志文件和PID文件位置。

假設一個現有的4.1.8版本服務器配置為默認TCP/IP端口號(3306)Unix套接字文件(/tmp/mysql.sock)。要想配置一個新的5.1.2-alpha版的服務器來使用不同的操作參數,使用一個configure命令,大概象這樣使用:

shell> ./configure --with-tcp-port=port_number 
             --with-unix-socket-path=file_name 
             --prefix=/usr/local/mysql-5.1.2-alpha

這里,port_numberfile_name必須不同于默認TCP/IP端口號和Unix套接字文件路徑名,并且--prefix值應指定一個不同于現有MySQL安裝目錄的安裝目錄。

如果你有一個MySQL服務器正偵聽一個給定的端口號,你可以使用下面的命令來找出針對一些重要配置變量它使用了那些操作參數,包括基礎目錄和Unix套接字文件名:

shell> mysqladmin --host=host_name --port=port_number variables

通過該命令顯示的信息,當配置其它服務器時,你可以告訴服務器該選項沒有使用的值。

請注意,如果你指定localhost作為一個主機名,mysqladmin默認使用Unix套接字文件連接,而不是TCP/IP。從 MySQL 4.1開始,通過--protocol= TCP | SOCKET | PIPE | MEMORY}選項,你可以顯示地指定連接協議。

如果只是用一個不同的Unix套接字文件和TCP/IP端口號啟動,不必編譯新的MySQL服務器。還可以在運行時指定這些值。這樣做的一個方法是使用命令行選項:

shell> mysqld_safe --socket=file_name --port=port_number

要啟動第二個服務器,提供不同的--socket--port選項值,并且傳遞一個--datadir=path選項給mysqld_safe,以便服務器使用一個不同的數據目錄。

達到相似效果的另一個方法是使用環境變量來設置 Unix套接字文件名和TCP/IP端口號:

shell> MYSQL_UNIX_PORT=/tmp/mysqld-new.sock
shell> MYSQL_TCP_PORT=3307
shell> export MYSQL_UNIX_PORT MYSQL_TCP_PORT
shell> mysql_install_db --user=mysql
shell> mysqld_safe --datadir=/path/to/datadir &

這是一個快速啟動第二個服務器以用于測試的方法。該方法的最大好處是環境變量設定值適用于你從相同的shell調用的任何客戶端程序。因而,那些客戶端連接自動指向第二個服務器!

附錄F:環境變量包括你可以使用的影響mysqld的其它環境變量列表

對于自動服務器啟動,對于每個服務器,機器引導時執行的啟動腳本應執行下面的命令,每個命令用一個相應的選項文件路徑:

mysqld_safe --defaults-file=path

每個選項文件應包含一個給定服務器特定的選項值。

Unix中,mysqld_multi腳本是啟動多個服務器的另一個方法。參見5.1.5節,“mysqld_multi:管理多個MySQL服務器的程序”。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
北斗有巢氏 有巢氏北斗