托pipe公司进行VPS更改后无法启动ejabberd

我的主机提供商WebFusion昨晚晚些时候用安全补丁更新了我的VPS。

从那时起,我无法启动我的ejabberd实例。 我得到以下错误,这似乎表明主机名已更改。

=ERROR REPORT==== 2010-11-29 23:01:10 === E(<0.35.0>:ejabberd_config:278) : Error reading Mnesia database spool files: The Mnesia database couldn't read the spool file for the table 'acl'. ejabberd needs read and write access in the directory: /var/lib/ejabberd Maybe the problem is a change in the computer hostname, or a change in the Erlang node name, which is currently: 'ejabberd@lvps109-104-93-116' Check the ejabberd guide for details about changing the computer hostname or Erlang node name. =INFO REPORT==== 2010-11-29 23:01:15 === application: ejabberd exited: {bad_return,{{ejabberd_app,start,[normal,[]]}, {'EXIT',"Error reading Mnesia database"}}} type: temporary 

一切都一直工作了好几个月,我没有改变基于Ubuntu 8.04 LTS的VPSconfiguration。

我已经尝试了一切,我可以find在谷歌Wrt恢复或迁移mnesia文件在这种情况下,但我似乎无法让实例再次启动。 我无法对文件进行二进制备份,也无法清理系统,因为这依赖于在备份完成之前获取正在运行的实例。 看起来我很难过,将不得不注销几个月的用户帐户注册。

托pipe公司执行的修补程序和重新启动后,我的主机名似乎没有更改。 说实话,我真的不知道ejabberd的主机名是什么,但我知道它的forms是ejabberd @。 有没有一种方法可以从现有的mnesia数据文件中确定这一点?

至于WebFusion的技术支持渠道? 他们毫不含糊地告诉我,我是独立的,在被质疑时根本不支持。

希望能有关于如何从/ var / lib / ejabberd中mnesia数据文件中提取数据以及如何恢复或新安装的指导。 如果必须的话,我会考虑搬到新的主机或VPS。

提前非常多谢。

  1. 停止ejabberd。

/etc/init.d/ejabberd停止

2.杀死进程:beam,beam.smp,epmd

killall ejabberd

killall梁

killall beam.smp

killall epmd

3.删除/ var / lib / ejabberd中的文件(以防万一)创build此文件夹的备份副本)

rm -rf / var / lib / ejabberd / *

rm -rf /var/lib/ejabberd/.erlang.cookie

试着开始ejabberd。

/etc/init.d/ejabberd启动

我结束了使用ejabberdctl获得有关基础mnesia数据库的信息。

然后在文件/ etc / defaults / ejabberd中设置ERLANG_NODE ,在我的情况下是ejabberd @ vps 。 在input/etc/init.d/ejabberd start后,中提琴服务出现了。

启动后,过程报告在30秒后失败。 然而,我可以访问Webpipe理界面并转储数据库。

为了将来的使用,我将被部署到一个新的ejabberd + MySQL集群,显然离开我现在的VPS提供者。