我在Ubuntu 16.4上运行Ejabberd 17.01,我需要记录数据库中的所有消息。使用模块mod_mam
,这应该是简单的任务。到目前为止我根据official documentation:
ejabberd.yml
配置文件代码段:
auth_method: sql
default_db: sql
...
## MySQL server:
##
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "someuser"
sql_password: "somepassword"
...
原则上,这似乎有效。当我创建新用户或用户创建自己的帐户时,我可以看到相应MySQL表的添加内容。这意味着我可以使用数据库并且可以访问它。
但现在我要启用mod_mam
。根据Web上的文档和其他来源,这看起来应该是这样的:
modules:
mod_mam: % <-- I had "mom_mam" here. Didn't notice the typo in the error message.
iqdisc: no_queue
db_type: sql
default: always
然而,由此,Ejabberd未能开始抛出以下错误:
2017-01-27 08:44:50.242 [critical] <0.39.0>@gen_mod:start_module:162 Problem starting the module mom_mam for host <<"xxx.xxx.xxx.xxx">>
options: [{iqdisc,no_queue},{db_type,sql},{default,always}]
error: undef
[{mom_mam,start,
[<<"xxx.xxx.xxx.xxx">>,
[{iqdisc,no_queue},{db_type,sql},{default,always}]],
[]},
{gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,154}]},
{lists,foreach,2,[{file,"lists.erl"},{line,1337}]},
{ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,77}]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},{line,273}]}]
2017-01-27 08:44:50.242 [critical] <0.39.0>@gen_mod:maybe_halt_ejabberd:170 ejabberd initialization was aborted because a module start failed.
我在网上找不到任何东西,它似乎通常都能正常工作。