在同一臺機器上運行多個MySQL服務器

有些情況下你可能想要在同一臺機器上運行多個。例如,你可能想要測試一個新的MySQL版本而讓你現有生產系統的設置不受到干擾,或你可能是想要爲不同的客戶提供獨立的MySQL安裝一個因特網服務供應商。
  如果你想要運行多個,最容易的方法是用不同的TCP/IP端口和套接字文件重新編譯服務器,因此他們不是偵聽同一個TCP/IP端口或套接字。
  假設一個現存服務器配置爲缺省端口號和套接字文件,那麼用一個這樣的configure命令行設置新的服務器:
  
  shell> ./configure --with-tcp-port=port_number --with-unix-socket=file_name --prefix=/usr/local/mysql-3.22.9
  
  這裏port_numberfile_name應該不同於缺省端口號和套接字文件路徑名,而且--prefix值應該指定一個不同於現存的MySQL安裝所在的安裝目錄。
  你可以用這個命令檢查由任何當前執行的MySQL所使用的套接字和端口:
  shell> mysqladmin -h hostname --port=port_number variables
  如果你有一個MySQL服務器正運行在你使用了的端口上,你將得到MySQL的一些最重要的可配置變量的一張表,包括套接字名等。
  你也應該編輯你機器的初始化腳本(可能是“mysql.server”)來啓動並殺死多個mysqld服務器。
  你不必重新編譯一個新MySQL服務器,只要以一個不同的端口和套接字啓動即可。你可以通過指定在運行時safe_mysqld使用的選項來改變端口和套接字:
  shell> /path/to/safe_mysqld --socket=file_name --port=port_number
  如果你在與開啓日誌的另一個服務器相同的一個數據庫目錄下運行新服務器,你也應該用safe_mysqld--log--log-update選項來指定日誌文件的名字,否則,兩個服務器可能正在試圖寫入同一個日誌文件。
  
  警告:通常你決不應該有在同一個數據庫中更新數據的2個服務器!如果你的OS不支持無故障(fault-free)的系統鎖定,這可能導致令人驚訝的事情發生!
  
  如果你想要爲第二個服務器使用另一個數據庫目錄,你可以使用safe_mysqld--datadir=path選項。
  
  當你想要連接一個正在運行的使用一個不同於編譯進你的客戶程序中端口的MySQL服務器時,你可以使用下列方法之一:
  
  以--host 'hostname' --port=port_numer[--host localhost] --socket=file_name啓動客戶。
  在你的CPerl程序中,當連接MySQL服務器時,你可以給出端口和套接字參數。
  在你啓動客戶程序之前,設置MYSQL_UNIX_PORTMYSQL_TCP_PORT環境變量,指向Unix套接字和TCP/IP的端口。如果你通常使用一個特定的套接字或端口,你應該將設置這些環境變量的命令放進你的“.login”文件中。
  在你的主目錄下的“.my.cnf”文件中指定缺省套接字和TCP/IP端口。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章