Error
Changing the domain name in the configuration file and in ejabberd's startup command do not work.
Explanation
Because ejabberd uses Mnesia as its internal database, and because this system stores the Erlang node name into the backup files, you cannot simply change the domain name in the configuration file and in ejabberd's startup command. If you want to migrate from one host to another you have to 'convert' the backups from the old node name to the new one and then restore these converted backups.
1.Backup Database on the old Hos
Ejabberdctl backup old.backup
2.修改ejabberdctl.cfg中的ERLANG_NODE为新的node name
Ejabberdctl start (这时启动的ejabberd的node为新name,会创建一个空的以新node name为名字的mnesia数据库)
3.Convert the backup to new node name
Ejabberdctl mnesia_change_nodename $OLDNODE $NEWNODE $old.backup new.backup
4.Install the backup file as a fallback:
Ejabberdctl install_fallback new.backup
5.stop ejabberd
Ejabberdctl stop
6.start ejabberd
Ejabberdctl start
7.Check that the information of the old database is available