将ejabberd默认DB移动到MySQL会显示身份验证失败

时间:2014-05-20 05:42:51

标签: xmpp ejabberd

我正在尝试在我的 Amazon EC2 Ubuntu 实例上设置 ejabberd服务器。 使用 ejabberd 提供的默认数据库,我可以轻松设置我的连接。但是我需要用 MySQL 替换 mnesia DB。我通过互联网找到了一些教程。从那些教程我发现了一个解决方案。我将逐步解释它。

我正在使用 ejabberd 2.1.11 。我在 ejabberd.cfg 文件

上进行了以下更改
  1. 评论如下:

    {auth_method, internal}

  2. 取消注释:
     {auth_method, odbc}
  3. 配置我的MySQL数据库

    {odbc_server, {mysql, "localhost", "students", "root", ""}} // No Password set

  4. mod_last 更改为 mod_last_odbc

  5. mod_offline 更改为 mod_offline_odbc

  6. mod_roster 更改为 mod_roster_odbc

  7. mod_private 更改为 mod_private_odbc

  8. mod_privacy 更改为 mod_privacy_odbc

  9. mod_pubsub 更改为 mod_pubsub_odbc

  10. mod_vcard 更改为 mod_vcard_odbc

  11. 然后我从以下链接安装 ejabberd-mysql驱动程序

    http://stefan-strigler.de/2009/01/14/ejabberd-mysql-drivers-for-debian-and-ubuntu/

    完成所有这些更改后,我重新启动了 ejabberd服务器

    然后我尝试登录我的 ejabberd服务器。它显示了登录提示。

    输入凭据后需要花费很多时间,然后显示身份验证失败

    对此主题的任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

让我们深入研究问题

  • 您的设置正常,这意味着您的配置文件正常。但是之后 为什么auth会失败?
  • 您的学生数据库中有哪些架构?
    • 如果您安装了正确的架构,那么该用户是否会出现在您的数据库用户表中?
    • 您是否还使用正确的mysql详细信息更新了conf / odbc.ini。
    • 即使两个条件都满足,我也建议您设置mysql密码,然后重试。

如果这有帮助,请告诉我。

更新: -

  • 使用{loglevel,5}
  • 更新您的配置
  • 然后点击登录并拖尾所有日志文件。

ODBC.INI

  1 [ejabberd]
  2 Driver      = MySQL
  3 DATABASE    = students
  4 PWD     = 
  5 SERVER      = localhost
  6 SOCKET      = /tmp/mysql.sock
  7 UID     = root

答案 1 :(得分:0)

一个很容易错过的主要基本部分是先前存储在mnesia数据库中的数据将不再适用于您的新配置,因此您必须再创建一个这样的管理员用户才能访问您的管理员帐户。 / p>

./ ejabberdctl注册管理员“密码”