Erlang 与DCD/DCL合作的记忆

Erlang 与DCD/DCL合作的记忆,erlang,ejabberd,mnesia,Erlang,Ejabberd,Mnesia,我把我的ejabberd炸掉了。我真的弄不清什么东西坏了。不管怎样,我稍后会看一看。我需要的是我的花名册。所有内容都应存储在mnesia数据库中 我想提取我的联系人(请记住,我无法启动ejabberd,erl正在工作) 我如何以最好的方式做到这一点?我从未与erlang合作过,也没有与mnesia合作过。我怀疑我的花名册在花名册.DCD文件中 暂时将该文件的内容转储到文本文件中就足够了 欢迎任何帮助:-) 非常感谢假设ejabberd问题的原因不是Mnesia数据库损坏,您可以启动Erlang

我把我的ejabberd炸掉了。我真的弄不清什么东西坏了。不管怎样,我稍后会看一看。我需要的是我的花名册。所有内容都应存储在mnesia数据库中

我想提取我的联系人(请记住,我无法启动ejabberd,erl正在工作)

我如何以最好的方式做到这一点?我从未与erlang合作过,也没有与mnesia合作过。我怀疑我的花名册在花名册.DCD文件中

暂时将该文件的内容转储到文本文件中就足够了

欢迎任何帮助:-)


非常感谢

假设ejabberd问题的原因不是Mnesia数据库损坏,您可以启动Erlang shell并直接从数据库读取。运行以下命令:

erl -sname ejabberd@myhost -s mnesia -mnesia dir '"/var/lib/ejabberd"'
mnesia:dump_to_textfile("my_ejabberd.txt").
注意,我假设您使用的是典型的Ejabberd配置。用正确的目录名替换/var/lib/ejabberd

或者,如果您至少可以让ejabberd启动,即使它在某种意义上不起作用,您也可以通过启动ejabberd然后运行
ejabberdctl debug
来进一步简化它。这样,您就不必猜测正确的节点名称

无论如何,打开Erlang shell后,运行以下命令:

erl -sname ejabberd@myhost -s mnesia -mnesia dir '"/var/lib/ejabberd"'
mnesia:dump_to_textfile("my_ejabberd.txt").

然后按Ctrl+C两次退出,您应该已经准备好了。

嘿,谢谢您的帮助。看起来我还有一个问题,当我按照你的建议做时,我会崩溃:(ejabberd@localhost)1> mnesia:dump_to_textfile(“my_ejabberd.txt”)=错误报告===20-Jun-2011::16:42:08===Mnesia(ejabberd@localhost):**错误**(内核转储到文件:“/root/MnesiaCore。ejabberd@localhost_1308_580928_388884“”**致命**mnesia_tm崩溃:{中止,{badarg,caps_功能,多数}}状态:[]知道我可以尝试什么吗?哦,天哪,我不知道在这种情况下该怎么办。您可能想尝试询问erlang问题电子邮件列表。