Ejabberd在Windows下集羣配置自帶Mnesia數據庫

以前是隨意瞭解下ejabberd,也無聊去裝了下,但是現在公司說要用ejabberdIM的服務器,有種想死的衝動有木有啊!!!不是人配置的有木有啊!!!我一點都不懂有木有啊!!!坑爹的網上資料有木有啊!!!官方文檔看的我想死有木有啊!!!我自己一個人調試了四天有木有啊!!!第一天,傻逼一樣的,第二天,稍微有點想法,還是失敗,第三天,感覺會了,電腦的IP突然改了,坑爹啊,第四天,終於成功了,激動的一B啊。

 

1.首先修改hosts文件裏面的內容添加兩個節點的IP和域名,及主節點域名和IP

 

2.安裝ejabberd,無腦安裝即可,最好安裝的時候把服務器名稱改爲djh.zj135.com

3.修改C:\Users\Administrator\AppData\Roaming\ejabberd\conf\ejabberdctl.cfg 文件,加入並修改ERLANG_NODEINET_DIST_INTERFACE的值。

 

其中INET_DIST_INTERFACE的值是tuple,所以不能用’.‘而是隻能用’,‘,但是我覺得我沒有這個也沒事,也許是在Windows環境下。

4.修改D:\Program Files (x86)\ejabberd-2.1.11\bin\ejabberdctl文件,改HOST=ry.djh.zj.com,這個好像不要也行,還是保險點寫下吧。

5.將第二個節點也重複2-4步驟。

6.在第兩臺機子上運行命令行,輸入

 

7.下面的操作只在第二個節點上運行,關閉第二個節點的ejabberd,將第一個節點C:\Users\Administrator下的.erlang.cookie文件複製到第二個節點的C:\Users\Administrator文件下覆蓋。

8.還是在第二個節點的機器上運行命令行,(最好在D盤下新建個XX文件,怕錯誤)輸入

 

name long name (可以百度)mnesia dir ‘”/XX”’ 說明是D:\XX, s mnesia 是打開數據庫,setcookie後面是.erlang.cookie裏面的內容。

9.然後繼續在命令行輸入mnesia:info().查看,如果running db nodes 有兩個,說明成功。

10.如果成功,繼續在命令行輸入mnesia:change_table_copy_type(schema, node(), disc_copies).

11.然後複製數據庫,繼續在命令行輸入  [{Tb, mnesia:add_table_copy(Tb, node(), Type)}|| {Tb, [{'[email protected]', Type}]} <- [{T, mnesia:table_info(T, where_to_commit)}|| T <- mnesia:system_info(tables)]].

12.然後去Ctrl+C直接退出。

13.刪除C:\Users\Administrator\AppData\Roaming\ejabberd\database\[email protected]裏面的所有內容,並將D:\XX所有的內容複製到上面刪除內容的目錄裏面。

14.添加負載均衡配置,在C:\Users\Administrator\AppData\Roaming\ejabberd\conf\ejabberd.cfg的文件末尾加入{domain_balancing_component_number, "djh.zj135.com", 2}.。

15.修改日誌級別爲debug方便觀察後臺信息,C:\Users\Administrator\AppData\Roaming\ejab

berd\conf\ejabberd.cfg文件下的{loglevel, 3}.{loglevel, 5}.。

16.然後重啓ejabberd,在web管理頁面看到兩個節點,訪問兩個節點的效果完全一樣。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章