И така, човек и добре да си живее, в един момент поради разни стечения на обстоятелствата му се случва да види следното в лога на 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