【问题标题】:Use mysql drivers with ejabberd without recompilation [closed]将mysql驱动程序与ejabberd一起使用而无需重新编译[关闭]
【发布时间】:2012-06-05 14:32:21
【问题描述】:

我拥有 ejabberd 所需的所有 mysql .beam 文件。我通过 apt 安装了 ejabberd。 但是,当我尝试将这些 .beam 文件复制到 /usr/lib/ebin 目录并运行 ejabberd 时,它会向 ejabberd.log 回显以下内容:

=信息报告==== 2012-05-31 09:46:02 === 应用:ejabberd 退出:{bad_return,{{ejabberd_app,start,[normal,[]]}, {'EXIT',database_module_missing}}} 类型:临时的

我做错了什么?

在ejabberd apt安装中添加mysql驱动的正确方法是什么?

【问题讨论】:

  • 光束文件的来源?

标签: mysql erlang ejabberd


【解决方案1】:

ejabberd are located in a different place 使用的 BEAM 文件 — 尝试将您的文件放在那里。

附带说明:您确定那些 BEAM 文件真的没问题吗? Erlang 在二进制可移植性方面不太宽松,因此始终建议使用与在目标机器上运行 ejabberd 相同的 Erlang 版本重新编译必要的代码。

【讨论】:

    【解决方案2】:

    检查触发此错误的原因很简单。它检查硬编码的模块列表是否在 Erlang VM 路径中。确保 odbc 文件存在并且它们具有正确的文件所有权。所需文件是:

    check_database_module(odbc) ->
        check_modules(odbc, [odbc, odbc_app, odbc_sup, ejabberd_odbc, ejabberd_odbc_sup, odbc_queries]);
    check_database_module(mysql) ->
        check_modules(mysql, [mysql, mysql_auth, mysql_conn, mysql_recv]);
    check_database_module(pgsql) ->
        check_modules(pgsql, [pgsql, pgsql_proto, pgsql_tcp, pgsql_util]).
    

    【讨论】:

      猜你喜欢
      • 2012-09-23
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      相关资源
      最近更新 更多