И така, човек и добре да си живее, в един момент поради разни стечения на обстоятелствата му се случва да види следното в лога на jabber сървъра си:
application: ejabberd
exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
{'EXIT',"Error reading Mnesia database"}}}
type: temporary
Без много чудене:
/etc/init.d/ejabberd stop
После:
/usr/sbin/ejabberd --node ejabberd@localhost
(ejabberd@oldhostname)1> mnesia:backup("/tmp/ejabberd_at_oldhostname.backup").
(Обърнете внимание на точката в края! След това можете да излезете от тази erlang инстанция:
(ejabberd@oldhostname)1> q().
Сега трябва да конвертирате информацията в базата си от старото към новото име на възел. Това може да стане така:
erl -pa /usr/lib/ejabberd/ebin
Там изпълнете:
ejabberd_admin:mnesia_change_nodename("ejabberd@localhost","ejabberd@jabber","/tmp/ejabberd_at_oldhostname.backup","/tmp/ejabberd_at_jabber.backup").
После преместете текущото съдържание на /var/lib/ejabberd/ някъде на безопасно място:
tar zcf ejabberd-archive.tar.gz /var/lib/ejabberd/*
rm /var/lib/ejabberd/*
Пуснете ръчно нова инстанция:
/usr/sbin/ejabberd --node ejabberd@jabber
(ejabberd@jabber)1> mnesia:restore("/tmp/ejabberd_at_jabber.backup", []).
Накрая, след като ако (както мен) сте изгубили час-два в опити да се оправите в цялата ерлангска каша, нервно напишете:
/etc/init.d/ejabberd start