Mnesia的:ejabberd:导出所有表的SQL查询到一个文件

Mnesia的:ejabberd:导出所有表的SQL查询到一个文件

问题描述:

我需要从ejabberd迁移的Mnesia到MySQL。Mnesia的:ejabberd:导出所有表的SQL查询到一个文件

  • 我已经尝试了很多来自ui的方法:从ui有一个节点。在节点的选择,我将有很多选择,其中一个选择是备份。该网页上有一种Export all tables as SQL queries to a file: host(0.0.0.0)一个选择,我试图把SQL备份,但文件是空

  • 我也试过这些命令:
    ejabberdctl export2odbc localhost /var/lib/ejabberd/new_file.sql。这也是一个空白文件,不产生错误:
    ejabberdctl export2sql localhost /tmp/sql /var/lib/ejabberd/new.sql。此命令不执行为export2sql不存在。

是否有任何其他的方式,采取SQL转储从Mnesia的

版本:ejabberd 16.01 MySQL的 5.6.xx

+0

您正在使用哪个版本的ejabberd以及您使用的是哪个sql数据库? –

+0

Hi @LamteiW:我已经解决了这个问题。我仍在寻找解决方案。真的有可能吗? –

在16.04加入的SQL export命令并命名作为export_sql后来改名16.06至export2sql。因此,有没有办法直接拉屎,但你有两个选择:

  • 如果你可以升级ejabberd,那么它的向前伸直,升级服务器,以SQL转储。

    • 采取相关文件夹的备份,如数据库/ spool目录,config目录等

    • 将服务器升级到最新版本,或者至少版本17.07(的原因,因为17.06版本是大部分的表可以导出到SQL文件,但17.03-17.06遭受bug

    • 配置ejabberd使用MySQL作为后端数据库。 确保以下模块具有db_type: sql选项。

      mod_announce,mod_caps,mod_irc,mod_last,mod_muc,mod_offline,mod_privacy,mod_private,mod_pubsub,mod_roster,mod_shared_roster,mod_vcard,mod_vcard_xupdate

    • 恢复后台打印目录,并确保你有相同的权限 所有文件和之前的子目录。

    • 运行与主机ejabberd2sql和SQL文件名作为参数

    注意:如果你只需要在SQL甩了你可能希望转储后恢复配置。

  • 如果你不能升级服务器,你可以在另一台机器上安装最新版本的ejabberd,复制数据库目录,按照上面的相同程序,你可以得到你的SQL的转储。