Xmpp 将ejabberd默认数据库移动到MySQL显示身份验证失败

Xmpp 将ejabberd默认数据库移动到MySQL显示身份验证失败,xmpp,ejabberd,Xmpp,Ejabberd,我正在尝试在我的Amazon EC2 Ubuntu实例上设置一个ejabberd服务器。 使用ejabberd提供的默认DB,我可以轻松设置连接。但是我需要用MySQL替换mnesia DB。我在网上找到了一些教程。从这些教程中,我找到了一个解决方案。我会一步一步地解释 我正在使用ejabberd 2.1.11。我对ejabberd.cfg文件做了以下更改 评论了以下行: {auth_方法,内部} 取消对此的注释: {auth_方法,odbc} 配置我的MySQL数据库 {odbc\u serv

我正在尝试在我的Amazon EC2 Ubuntu实例上设置一个ejabberd服务器。 使用ejabberd提供的默认DB,我可以轻松设置连接。但是我需要用MySQL替换mnesia DB。我在网上找到了一些教程。从这些教程中,我找到了一个解决方案。我会一步一步地解释

我正在使用ejabberd 2.1.11。我对ejabberd.cfg文件做了以下更改

  • 评论了以下行:

    {auth_方法,内部}

  • 取消对此的注释:
    {auth_方法,odbc}
  • 配置我的MySQL数据库

    {odbc\u server,{mysql,“localhost”,“students”,“root”,““”}//未设置密码

  • 将上次修改更改为上次修改

  • mod_offline更改为mod_offline\u odbc

  • mod_花名册更改为mod_花名册

  • mod_private更改为mod_private\u odbc

  • mod_privacy更改为mod_privacy\u odbc

  • mod_pubsub更改为mod_pubsub\u odbc

  • 将mod_vcard更改为mod_vcard

  • 然后我从下面的链接安装了ejabberdMySQL驱动程序

    在做了所有这些更改之后,我重新启动了ejabberd服务器

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

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

    在此主题上的任何帮助都将不胜感激。

    让我们深入探讨这个问题

    • 您的设置正在运行,这意味着您的配置文件正常。但是 为什么auth失败
    • 您的学生数据库中有什么模式?
      • 如果您安装了正确的模式,那么用户是否存在于ur db的users表中
      • 您是否也使用适当的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
    

    人们很容易忽略的一个主要基本部分是,以前存储在mnesia数据库中的数据将不再适用于您的新配置,因此您必须再次创建一个这样的管理员用户才能访问您的管理员帐户


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

    谢谢!->学生数据库和他们的ejabberd数据库一样,其他一切都很好,这意味着odbc.ini、用户表等的配置。谢谢!->学生数据库与他们的ejabberd数据库相同。->当我检查users表中没有元组时。我在安装时已经提供了管理员用户名和密码。那么,这对ejabberd管理面板登录来说够了吗?->我尝试了odbc.ini,但是您能解释一下所有的更改应该在那里做什么吗?好了,您的用户表中必须有一个用户。用户名应该和你的管理员相同,然后有密码。好的,那么我们在安装时设置的管理员用户名和密码没有值???如下所示。/ejabberdctl register admin server“password”