Не удается вызвать ejabberd после изменения VPS, сделанного хостинговой компанией

Мой хостинг-провайдер 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

Все работало много месяцев, и я не внес изменений в конфигурацию VPS, которая, кстати, основана на Ubuntu 8.04 LTS.

Я перепробовал все, что мог найти в Google, по восстановлению или переносу файлов mnesia в сценарии такого типа, но я не могу запустить экземпляр заново. Я не могу сделать бинарное резервное копирование файлов и очистить систему, так как это зависит от запуска работающего экземпляра до того, как резервное копирование может быть завершено. Похоже, я в замешательстве и мне придется списывать месяцы регистрации аккаунта пользователя.

Мое имя хоста, кажется, не изменилось с исправлениями и перезагрузкой, которую выполнила хостинговая компания. Честно говоря, я действительно не знаю, какое имя хоста ожидает ejabberd, но я знаю, что оно имеет форму ejabberd@. Интересно, есть ли способ определить это по существующим файлам данных mnesia?

Что касается каналов технической поддержки WebFusion? Они недвусмысленно сказали мне, что я сам по себе, и вообще не предложили никакой поддержки при допросе.

Буду признателен за любые рекомендации о том, как извлечь данные из файлов данных mnesia в /var/lib/ejabberd и как восстановить эту или новую установку. Я рассмотрю возможность перехода на новый хост или VPS, если потребуется.

Очень большое спасибо заранее.

2 ответа

Решение

Я использовал ejabberdctl, чтобы получить информацию о базе данных mnesia.

Затем установите ERLANG_NODE в файле /etc/defaults/ejabberd, в моем случае, ejabberd @ vps. Et Viola служба возникла после ввода /etc/init.d/ejabberd start.

При запуске отчеты о процессах не выполняются через 30 секунд. Тем не менее, я мог получить доступ к интерфейсу веб-управления и сбросить базу данных.

Для будущего использования я буду развернут в новом кластере ejabberd+MySQL и, очевидно, покину свой текущий поставщик VPS.

  1. Стоп Эджабберд.

/etc/init.d/ejabberd stop

2. Убить процессы: beam, beam.smp, ​​epmd

killall ejabberd

Killall Beam

killall beam.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 start

Другие вопросы по тегам