我正在使用eaabberd的exauth来验证我的用户,但我想使用mysql来存储用户信息,例如GROUPS,rosters等。
这是我的配置。
{auth_method, external}.
{extauth_program, "/home/hitesh/ejabberd_auth.php"}.
{host_config, "subdomain.nodyssey.com", [{auth_method, [external, anonymous]}]}.
{odbc_server, {mysql, "localhost","ejabberd", "root", "root"}}.
mysql数据库是EMPTY!用户在群聊时仍然有名册和聊天记录,所以看起来正在使用mnesia数据库!我如何为此切换到mysql?
我做错了什么?
答案 0 :(得分:4)
user601836是正确的。我最初误解了这个问题。假设已正确安装odbc和mysql驱动程序,这里是更新的答案:
... {mod_offline_odbc, []}, {mod_last_odbc, []}, {mod_roster_odbc, []}, {mod_shared_roster_odbc,[]}, {mod_vcard_odbc, []}, {mod_muc_odbc, [ ...]}, {mod_pubsub_odbc, [ ...]}, ...
有关详细的模块信息,请查看官方文档:
https://git.process-one.net/ejabberd/mainline/blobs/raw/v2.1.11/doc/guide.html#modoverview
答案 1 :(得分:0)
问这个问题已经有一段时间了。 Ejabberd配置文件同时发生了变化。要启用外部名册存储,假设配置了ejabberd和mysql DB和ejabberd模式,您在ejabberd.yml中所要做的就是:
sql_type: mysql
sql_server: "localhost"
sql_database: "some_database_name"
sql_username: "some_username"
sql_password: "some_password"
并更改mod_roster: {}
到
mod_roster:
db_type: sql