【问题标题】:Mnesia : ejabberd : Export all tables as SQL queries to a fileMnesia : ejabberd : 将所有表作为 SQL 查询导出到文件
【发布时间】:2018-03-22 00:15:56
【问题描述】:

我需要将 mnesia 从 ejabberd 迁移到 mysql

  • 我从 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 不存在。

有没有其他方法可以从 Mnesia 获取 sql 转储

版本:ejabberd 16.01 mysql 5.6.xx

【问题讨论】:

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

标签: mysql erlang ejabberd mnesia


【解决方案1】:

sql 导出命令是在 16.04 中添加的,命名为 export_sql,后来在 16.06 中更名为 export2sql。所以没有办法直接进行转储,但你有两种选择:

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

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

    • 将服务器升级到最新版本或至少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

    • 恢复假脱机目录并确保您具有相同的权限 像以前一样为所有文件和子目录。

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2010-11-19
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多