Не удается вызвать 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.
- Стоп Эджабберд.
/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