2013-12-17 84 views
1

我已經在我的本地主機(WAMP)上安裝了ejabberd,並且它爲Mnesia數據庫(默認)正常工作,現在我想將它與mysql連接,但無法執行。 我試圖與許多鏈路,例如, 首先創建的數據庫ejabberd與ejabberd架構,然後 1.評論行,如何在Ubuntu上連接ejabberd和mysql?

From {auth_method, internal}. 
To %%{auth_method, internal}. 

在此之後,

FROM %%{auth_method, odbc}. 
To 
{auth_method, odbc}. 

然後,

%% 
%% MySQL server: 
%% 
{odbc_server, {mysql, "localhost", "ejabberd", "root", "MyPassword"}}. 

最後加上_odbc在一些模塊中

{mod_last_odbc,  []}, 
{mod_offline_odbc, []}, 
{mod_privacy_odbc, []}, 
{mod_private_odbc, []}, 
{mod_pubsub_odbc, [ % requires mod_caps ... 
{mod_roster_odbc, []}, 
{mod_vcard_odbc, []}, 

但這些措施無法啓動ejabberd服務器後,我試過很多次,但所有的時間我需要重新安裝ejabberd,即使過程回滾不會奏效。 你的幫助將是可觀的。提前致謝。

回答

0

您可以發佈您的日誌報表來查看究竟發生了什麼故障嗎?我想你可能需要使用--enable-odbc選項來重建ejabberd。

+0

嗨Chrisyunker,對不起,遲到的迴應,無法生成日誌文件,你能幫我嗎? – Purushottam

+0

在ejabberd.cfg中將loglevel設置爲5(調試):{loglevel,5}。重新啓動ejabberd。將./var/log/ejabberd/ejabberd.log的內容發佈到要點和共享鏈接。 – chrisyunker

+0

=錯誤報告==== 2014-01-10 18:20:09 === C(<0.37.0>:ejabberd_check:63):ejabberd配置爲使用'mysql',但未安裝以下Erlang模塊:' [mysql, mysql_auth, mysql_conn, mysql_recv]' – Purushottam

1

步驟1)創建數據庫ejabberd


步驟2)進口this模式來ejabberd數據庫


步驟3)打開你的配置文件(ejabberd.cfg)並進行如下更改

從{auth_method,internal}。 到%% {auth_method,內部}。 在此之後,

FROM %%{auth_method, odbc}. 
To 
{auth_method, odbc}. 
then, 

%% 
%% MySQL server: 
%% 
{odbc_server, {mysql, "localhost", "ejabberd", "root", "MyPassword"}}. 

變化mod_last到mod_last_odbc

變化mod_offline到mod_offline_odbc

變化mod_roster到mod_roster_odbc

變化mod_private到mod_private_odbc

變化mod_privacy到mod_privacy_odbc

更改mod_pubsub到mod_pubsub_odbc

變化mod_vcard到mod_vcard_odbc


步驟4)這是大多數人摸索。安裝二郎MySQL的驅動程序:http://svn.process-one.net/ejabberd-modules/mysql/trunk/

您可以將它們複製到同一目錄是所有其他ejabberd束文件都已經複製:/ usr/lib中/ ejabberd/EBIN/


第5步)重新啓動ejabberd。

就是這樣。

來源:

https://www.ejabberd.im/Using%20ejabberd%20with%20MySQL%20native%20driver

https://www.ejabberd.im/node/4125

http://srijan.me/ejabberd-storing-data-in-mysql/

+0

安裝完成後,我訪問服務器,這裏是什麼我懂了。 http://imgur.com/j4RcxWr沒問題,有什麼建議嗎? @ jayesh-jain – hiennt

+1

如果使用的數據庫不是內部Mnesia數據庫,則ejabberd Web控制檯不會顯示用戶。 –

+0

步驟4的鏈接是否仍然相關?我們可以使用[this](https://github.com/processone/p1_mysql)嗎? –

1

我這個指南,我能夠啓動服務器的罰款。當我使用 $ sudo的ejabberdctl註冊USER_1本地主機USER_1 我得到了「用戶USER_1 @本地成功註冊」

然而,當我去到數據庫中,「從用戶選擇*」,我沒有看到任何記錄,我也查詢所有的表,不會看到任何數據,全部爲空。儘管我可以通過像Pidgin這樣的XMPP客戶端中的user_1/user_1登錄,但有什麼建議嗎?

謝謝

+0

使用https://www.process-one.net/zh/ejabberd/downloads/的最新版本 – hiennt