如何在ubuntu上连接ejabberd和mysql?

如何在ubuntu上连接ejabberd和mysql?,mysql,xmpp,ejabberd,Mysql,Xmpp,Ejabberd,我已经在我的本地主机(WAMP)上安装了ejabberd,它在Mnesia数据库中正常工作(默认),现在我想将它与mysql连接,但无法实现。 我尝试了很多链接,例如, 首先使用ejabberd模式创建数据库ejabberd,然后 1.评论道 From {auth_method, internal}. To %%{auth_method, internal}. 然后, FROM %%{auth_method, odbc}. To {auth_method, odbc}. FROM %%{a

我已经在我的本地主机(WAMP)上安装了ejabberd,它在Mnesia数据库中正常工作(默认),现在我想将它与mysql连接,但无法实现。 我尝试了很多链接,例如, 首先使用ejabberd模式创建数据库ejabberd,然后 1.评论道

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

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

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

最后在一些模块中添加了\u 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,甚至进程回滚都不起作用。
你的帮助将是可贵的。提前感谢。

您能发布日志声明来查看失败的具体原因吗?我认为您可能需要使用--enable odbc选项重建ejabberd。

步骤1)创建数据库ejabberd


步骤2)将架构导入ejabberd数据库


步骤3)打开配置文件(ejabberd.cfg)并进行以下更改

来自{auth_方法,内部}。 到%{auth_方法,内部}。 然后,

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

%%
%% MySQL server:
%%
{odbc_server, {mysql, "localhost", "ejabberd", "root", "MyPassword"}}.
将mod_last更改为mod_last_

将mod_offline更改为mod_offline

将mod_花名册更改为mod_花名册

将mod_private更改为mod_private

将mod_privacy更改为mod_privacy\u odbc

将mod_pubsub更改为mod_pubsub_odbc

将mod_vcard更改为mod_vcard_odbc


步骤4)这是大多数人摸索的地方。安装Erlang Mysql驱动程序:

如果已经复制了所有其他ejabberd beam文件,则可以将它们复制到同一目录:/usr/lib/ejabberd/ebin/


步骤5)重新启动ejabberd

就这样

资料来源:


我遵循了这个指南,我能够很好地启动服务器。当我使用 $sudo ejabberdctl注册用户\u 1本地主机用户\u 1 我得到了“用户”_1@localhost成功注册“

但是,当我转到数据库“select*from users”时,我没有看到任何记录,我也查询了所有表,没有看到任何数据,都是空的。虽然我可以通过像Pidgin这样的XMPP客户端中的user_1/user_1登录,但有什么建议吗


谢谢

Hi Chrisyunker,很抱歉响应太晚,无法生成日志文件,您能帮我吗?在ejabberd.cfg中将loglevel设置为5(调试):{loglevel,5}。重新启动ejabberd。将./var/log/ejabberd/ejabberd.log的内容发布到gist和共享链接。=错误报告===2014-01-10 18:20:09===C(:ejabberd_check:63):ejabberd配置为使用“mysql”,但未安装以下Erlang模块:'[mysql,mysql\u auth,mysql\u conn,mysql_recv]'所以看起来您被配置为使用mysql,但没有安装库。您需要从其他来源获取这些库。检查此链接:(我看到他们添加了p1_uu前缀,因此您必须相应地更新引用它的ejabberd源代码)安装后,我访问服务器,这是我看到的。可以吗,有什么建议吗?@jayesh jainejabberd web console不会向用户显示所使用的数据库是否不是内部Mnesia数据库。第4步的链接是否仍然相关?我们可以改为使用吗?@JeelShah由于第4步的链接现在已失效,您如何使用mysql配置ejabberd?@rigal想知道如何解决你的问题吗?很抱歉回复太晚。与我建立一个私人聊天-我不介意指导你。这个过程可能会很长。