托管公司更改 VPS 后无法启动 ejabberd

托管公司更改 VPS 后无法启动 ejabberd

我的托管服务提供商WebFusion昨晚用安全补丁更新了我的 VPS。

从那时起我就无法开始埃贾伯德实例。我收到以下错误,这似乎表明主机名已更改。

=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

几个月来一切都运行良好,我没有对 VPS 配置进行任何更改,它基于Ubuntu 8.04 LTS顺便一提。

我已经尝试了 Google 上能找到的所有恢复或迁移此类情况下的 mnesia 文件的方法,但似乎无法重新启动实例。我无法对文件进行二进制备份并清理系统,因为这依赖于在备份完成之前启动正在运行的实例。看来我束手无策了,不得不注销几个月的用户帐户注册。

我的主机名没有出现已随托管公司执行的补丁和重启而发生变化。老实说,我并不知道 ejabberd 期望的主机名是什么,但我知道它的形式是 ejabberd@。我想知道有没有办法从现有的 mnesia 数据文件中确定这一点?

至于技术支持渠道WebFusion他们明确地告诉我,我只能靠自己,当我问他们问题时,他们没有给我提供任何支持。

非常感谢任何关于如何从中提取数据的指导mnesia数据文件/var/lib/ejabberd以及如何恢复此安装或新安装。如果有必要,我会考虑迁移到新主机或 VPS。

非常感谢。

答案1

  1. 停止 ejabberd。

/etc/init.d/ejabberd停止

2.终止进程:beam、beam.smp、epmd

killall ejabberd

杀戮光束

杀死光束.smp

killall epmd

3.删除 /var/lib/ejabberd 中的文件(为以防万一,请创建此文件夹的备份)

rm -rf /var/lib/ejabberd/*

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

4.尝试启动ejabberd。

/etc/init.d/ejabberd 启动

答案2

我最终使用了韋伯德克特获取有关底层 mnesia 数据库的信息。

然后设置ERLANG_NODE在文件中/etc/defaults/ejabberd就我而言,ejabberd@vps. Et viola 服务在输入后出现/etc/init.d/ejabberd 启动

启动后,进程报告在 30 秒后失败。但我可以访问 Web 管理界面并转储数据库。

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

相关内容