1

ejabberd で exauth を使用してユーザーを認証していますが、mysql を使用して、GROUPS、名簿などのユーザー情報を保存したいと考えています。

これが私の構成です。

{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 データベースが空です。ユーザーはまだグループチャットの名簿とチャット履歴を持っているので、mnesia データベースが使用されているようです! このためにmysqlに切り替えるにはどうすればよいですか?

私は何を間違っていますか?

4

2 に答える 2

5

user601836は正しいです。私は最初にその質問を誤解しました。odbcおよびmysqlドライバーが正しくインストールされていると仮定すると、更新された回答は次のとおりです。

  1. 名簿データなどを保存するためのmysqlテーブルを作成しましたか?また、すべてのejabberdテーブルはinnodbエンジンを使用して作成されていますか?スキーマはgithubで取得できます:https ://github.com/processone/ejabberd/blob/2.1.x/src/odbc/mysql.sql 。また、ejabberdインストールフォルダにあります。鉱山は次の場所にあります:ejabberd_installation_root / lib / ejabberd-2.1.11 / priv / sql/mysql.sql。
  2. ejabberd.cfgの*_odbcを使用して、関連するモジュール名を置き換えます。たとえば、mod_rosterをmod_roster_odbcに置き換え、mod_mucをmod_muc_odbcに置き換えます。odbcでサポートされているモジュールの数を以下に示します。
    ..。
    {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
于 2013-03-10T18:05:46.583 に答える