Mysql Mnesia:ejabberd:将所有表作为SQL查询导出到文件

Mysql Mnesia:ejabberd:将所有表作为SQL查询导出到文件,mysql,erlang,ejabberd,mnesia,Mysql,Erlang,Ejabberd,Mnesia,我需要将mnesia从ejabberd迁移到mysql 我从ui尝试了很多方法:从ui有一个节点。在选择节点时,我将有许多选项,其中一个选项是备份。在该页面上有一个选项将所有表作为SQL查询导出到一个文件:host(0.0.0.0),我试图进行SQL备份,但文件为空 我还尝试了以下命令: ejabberdctlexport2odbclocalhost/var/lib/ejabberd/new_file.sql。这也是一个空白文件,不会产生错误。:/br> ejabberdctlexport2s

我需要将mnesia从ejabberd迁移到mysql

  • 我从ui尝试了很多方法:从ui有一个节点。在选择节点时,我将有许多选项,其中一个选项是备份。在该页面上有一个选项
    将所有表作为SQL查询导出到一个文件:host(0.0.0.0)
    ,我试图进行SQL备份,但文件为空

  • 我还尝试了以下命令:
    ejabberdctlexport2odbclocalhost/var/lib/ejabberd/new_file.sql
    。这也是一个空白文件,不会产生错误。:/br>
    ejabberdctlexport2sqllocalhost/tmp/sql/var/lib/ejabberd/new.sql
    。此命令不执行,因为
    export2sql
    不存在

是否有其他方法从Mnesia获取sql转储


版本:ejabberd16.01mysql5.6.xx

sql export命令在16.04中添加,命名为export_sql,后来在16.06中重命名为export2sql。因此,没有办法直接倾倒垃圾,但有两种选择:

  • 如果您可以升级ejabberd,那么直接升级服务器,转储sql

    • 备份相关文件夹,如数据库/spool目录、配置目录等

    • 将服务器升级到最新版本或至少17.07版本(原因是由于17.06版本,大多数表都可以导出到sql文件,但17.03-17.06会出现错误)

    • 将ejabberd配置为使用mysql作为后端数据库。 确保以下模块具有
      db\u type:sql
      选项

      mod_公告、mod_caps、mod_irc、mod_last、mod_muc、mod_离线、mod_隐私、mod_private、mod_pubsub、mod_花名册、mod_共享花名册、mod_vcard、mod_vcard更新

    • 还原假脱机目录并确保您具有相同的权限 对于所有文件和子目录,如前所述

    • 以主机和sql文件名作为参数运行ejabberd2sql

    注意:如果您只需要sql转储,您可能希望在转储后恢复配置

  • 如果无法升级服务器,可以在另一台计算机上安装最新版本的ejabberd,复制数据库目录,按照上面的相同过程进行操作,然后获得sql的转储


您使用的是哪个版本的ejabberd,您使用的是哪个sql数据库?Hi@LamteiW:我已经提出了这个问题。我仍在寻找解决方案。真的有可能吗?