如何在ubuntu上连接ejabberd和mysql?

时间:2013-12-17 13:02:18

标签: mysql xmpp ejabberd

我已经在我的localhost(WAMP)上安装了ejabberd并且它正常用于Mnesia数据库(默认),现在我想用mysql连接但无法做到。 我试过很多链接,例如, 首先用ejabberd模式创建一个数据库ejabberd然后  1.评论这一行,

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,即使回滚进程也行不通。 你的帮助会很明显。提前谢谢。

3 个答案:

答案 0 :(得分:1)

步骤1)创建数据库ejabberd


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


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

来自{auth_method,internal}。 至%% {auth_method,internal}。 之后,

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)这是大多数人摸索的地方。安装Erlang-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/

答案 1 :(得分:1)

我遵循本指南,我能够很好地启动服务器。当我使用时 $ sudo ejabberdctl注册user_1 localhost user_1 我收到了“用户user_1 @ localhost已成功注册”

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

谢谢

答案 2 :(得分:0)

您可以发布日志语句以查看究竟是什么失败了吗?我想你可能需要用--enable-odbc选项重建ejabberd。