第一部分, 在一台伺服器構建多mysql 服務.
一,緒言
在Mysql中有一mysqld_multi命令,可用於在一台物理伺服器運行多個Mysql服務,今天參考一些文檔,親自測試並通過,真高興,現將操作過程共用給大家!
作業系統:Linux 2.6.13 (Slackware),其它版的Linux應該也差不多.
資料庫:Mysql 4.0.17 來源程式安裝(相信最新的5.1.*也差不多,過些天再試試)
規劃:運行4個mysql服務:
假設伺服器名:db-app (IP為192.168.0.100),
假設伺服器名:db-app2 (IP為192.168.0.101),
下文直到第二部分,均為講述db-app中的mysql,
二,準備
用mysql來源程式安裝,假設在安裝時用的configura選擇項氯?
./configure --prefix=/usr/local/mysql --datadir=/usr/local/mysql/data1 --sysconfdir=/etc
備忘:--prefix將MYSQL安裝到/usr/local/mysql,
--datadir將資料庫產生/usr/local/mysql/data1
sysconfdir是指定mysql使用到的my.cnf設定檔的搜尋路徑為/etc
其他mysql安裝過程略.
根據Mysql管理手冊中提到:每個Mysql的服務都可為獨立的,所以它都調用一個my.cnf中各自不同的啟動選項--就是下文中將提到的GNR值,使用不同的連接埠,產生各自的套接檔案,服務的資料庫都是獨立的(更多可查閱mysql官方網站的英文管理手冊).
mysqld_multi是管理多個mysqld的服務進程,這些服務進程程式不同的unix socket或是監聽於不同的連接埠。他可以啟動、停止和監控當前的服務狀態。
----程式在my.cnf(或是在--config-file自訂的設定檔)中搜尋[mysqld#]段,"#"可以是任意的正整數。這個正整數就是在下面提及的段序列,即GNR。段的序號做為mysqld_multi的參數,來區別不同的段,這樣你就可以控制特定mysqld進程的啟動、停止或得到他的報告資訊。這些組裡的參數就像啟動一個mysqld所需要的組的參數一樣。但是,如果使用多服務,必須為每個服務指定一個unix socket或連接埠(摘自http://mifor.4dian.org中的使用mysqld_multi程式管理多個MySQL服務 )。
從上述文字可看到多Mysql服務中最重要的就是my.cnf設定檔了.
現我貼出我的my.cnf檔案.-----------------------
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin