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