熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

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

2013-11-23 20:58:15  來源: MySQL 

  有些情況下你可能想要在同一台機器上運行多個服務器例如你可能想要測試一個新的MySQL版本而讓你現有生產系統的設置不受到干擾或你可能是想要為不同的客戶提供獨立的MySQL安裝一個因特網服務供應商
  如果你想要運行多個服務器最容易的方法是用不同的TCP/IP端口和套接字文件重新編譯服務器因此他們不是偵聽同一個TCP/IP端口或套接字
  假設一個現存服務器配置為缺省端口號和套接字文件那麼用一個這樣的configure命令行設置新的服務器
  
  shell> /configure withtcpport=port_number withunixsocket=file_name prefix=/usr/local/mysql
  
  這裡port_number和file_name應該不同於缺省端口號和套接字文件路徑名而且prefix值應該指定一個不同於現存的MySQL安裝所在的安裝目錄
  你可以用這個命令檢查由任何當前執行的MySQL所使用的套接字和端口
  shell> mysqladmin h hostname port=port_number variables
  如果你有一個MySQL服務器正運行在你使用了的端口上你將得到MySQL的一些最重要的可配置變量的一張表包括套接字名等
  你也應該編輯你機器的初始化腳本(可能是mysqlserver)來啟動並殺死多個mysqld服務器
  你不必重新編譯一個新MySQL服務器只要以一個不同的端口和套接字啟動即可你可以通過指定在運行時safe_mysqld使用的選項來改變端口和套接字
  shell> /path/to/safe_mysqld socket=file_name port=port_number
  如果你在與開啟日志的另一個服務器相同的一個數據庫目錄下運行新服務器你也應該用safe_mysqld的log和logupdate選項來指定日志文件的名字否則兩個服務器可能正在試圖寫入同一個日志文件
  
  警告通常你決不應該有在同一個數據庫中更新數據的個服務器!如果你的OS不支持無故障(faultfree)的系統鎖定這可能導致令人驚訝的事情發生!
  
  如果你想要為第二個服務器使用另一個數據庫目錄你可以使用safe_mysqld的datadir=path選項
  
  當你想要連接一個正在運行的使用一個不同於編譯進你的客戶程序中端口的MySQL服務器時你可以使用下列方法之一
  
  以host hostname port=port_numer或[host localhost] socket=file_name啟動客戶
  在你的C或Perl程序中當連接MySQL服務器時你可以給出端口和套接字參數
  在你啟動客戶程序之前設置MYSQL_UNIX_PORT和MYSQL_TCP_PORT環境變量指向Unix套接字和TCP/IP的端口如果你通常使用一個特定的套接字或端口你應該將設置這些環境變量的命令放進你的login文件中
  在你的主目錄下的f文件中指定缺省套接字和TCP/IP端口
From:http://tw.wingwit.com/Article/program/MySQL/201311/29355.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.