top
Loading...
5.12.在同一臺機器上運行多個MySQL服務器
5.12. 在同一臺機器上運行多個MySQL服務器
5.12.1. 在Windows下運行多個服務器
5.12.2. 在Unix中運行多個服務器
5.12.3. 在多服務器環境中使用客戶端程序

在一些情況下,你可能想要在同一臺機器上運行多個mysqld服務器。你可能想要測試一個新的MySQL發布,同時不影響現有產品的設置。或者,你可能想使不同的用戶訪問來訪問不同的mysqld服務器以便他們自己來管理。(例如,你可能是一個Internet服務提供商,希望為不同的客戶來提供獨立的MySQL安裝)

要想在一個單獨的機器上運行多個服務器,每個服務器必須有唯一的各運行參數值。這些值可以在命令行中設置或在選項文件中設置。參見4.3節,“指定程序選項”。

至少下面的選項對每個服務器必須是不同的:

·         --port=port_num

--port控制著TCP/IP連接的端口號。

·         --socket=path

--socket控制Unix中的Unix套接字文件路徑和在Windows中的命名管道名稱。在Windows中,只有支持命名管道連接的服務器才需要明確指定管道名稱。

·         --shared-memory-base-name=name

該選項當前只在Windows中使用。它指定Windows服務器使用的、允許客戶端通過共享內存來連接的共享內存名。

·         --pid-file=path

該選項只在Unix中使用。它指出服務器在其中寫入進程ID的文件名。

如果你使用下面的日志文件選項,對于每個服務器來說,它們必須是不同的:

·           --log=path

·         --log-bin=path

·         --log-update=path

·         --log-error=path

·         --bdb-logdir=path

日志文件選項的描述參見5.11.5節,“日志文件維護”。

為了提高性能,你可以為每個服務器指定下面選項的不同的值,以便在物理磁盤之間平均分配負荷:

·         --tmpdir=path

·         --bdb-tmpdir=path

還推薦使用不同的臨時目錄,以便容易地確定哪個MySQL服務器創建了給定的臨時文件。

一般情況,每個服務器應還使用不同的數據目錄,可以通過--datadir=path選項來指定。

警告:一般情況,你決不要讓兩個服務器更新相同數據庫中的數據。否則,如果你的操作系統不支持故障排除系統鎖定,該可能會導致非常奇怪的結果。如果(不理會該警告)運行的多個服務器使用相同的數據目錄并且啟用了日志記錄,你必須使用適當的選項來為每個服務器指定唯一的日志文件名。否則,服務器嘗試用相同的文件來記錄日志。請注意這種類型的設置只能在MyISAMMERGE表上工作,對其它任何存儲引擎不起作用。

多個服務器共享一個數據目錄的警告也適用于NFS環境。允許多個MySQL服務器通過NFS訪問一個共同的數據目錄是一個非常不好的主義

·         主要問題是NFS存在速度瓶頸。它不是用于這種用途。

·         NFS的另一個冒險是你必須提出一個方法來確保兩個或多個服務器不會相互干擾。NFS文件的鎖定通常由lockd后臺程序處理,但是目前,沒有一個運行平臺能夠在每種情況下100%可靠地進行鎖定。

使你更加容易:忘記在服務器之間通過NFS共享數據目錄。一個較好的解決方案是使用包含幾個CPU并且和使用有效處理多線程的操作系統的機器。

如果在不同的位置有多個MySQL的安裝,一般情況可以用--basedir=path選項為每個服務器指定基本安裝目錄,使每個服務器使用不同的數據目錄、日志文件和PID文件。(所有這些值的 默認值相對于根目錄來確定)。那樣的話, 你唯一需要指定的其它選項是--socket--port選項。例如,假如使用tar文件二進制分發版安裝不同的MySQL版本。這些安裝在不同的位置,因此可以使用各個安裝服務器相應的根目錄中的bin/mysqld_safe命令啟動服務器。mysqld_safe確定正確的--basedir選項傳遞給mysqld,你僅需要為mysqld_safe指定--socket--port選項。

正如下面幾節所討論的那樣,可以通過設置環境變量或用指定的命令行選項來啟動更多的服務器。但是,如果你需要在一個更穩定的基礎上運行多個服務器,一個更方便的方法是使用選項文件來為每個服務器指定那些選項值,它對每個服務器必須是唯一的。

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