2.x release: Going from internal to MySQL?

Hey all!

Running 1.x for years now, and FreeBSD only just recently allowed the 2.x in the ports. So from now on, I am on 2.x - yay! Got it running. Yay!

Just one question: Using the internal db currently, and want to migrate to SQL (on the same host) now, ideally by socket, not tcp. How would I go about porting data? I was thinking along the lines of dumping, changing to mysql, re-importing.

A "ejabberdctl ejabberd@alpha-labs.net backup ejabberd.db" gives me this:

RPC failed on the node ejabberd@localhost: nodedown

=ERROR REPORT==== 21-Mar-2009::17:34:16 ===
Error in process <0.33.0> on node 'ejabberdctl@alpha-labs' with exit value: {badarg,[{erlang,list_to_existing_atom,["ejabberd@alpha-labs"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]}

Commands to start an ejabberd node:
start Start an ejabberd node in server mode
debug Attach an interactive Erlang shell to a running ejabberd node
live Start an ejabberd node in live (interactive) mode

Optional parameters when starting an ejabberd node:
--config file Config file of ejabberd: /usr/local/etc/ejabberd/ejabberd.cfg
--ctl-config file Config file of ejabberdctl: /usr/local/etc/ejabberd/ejabberdctl.cfg
--logs dir Directory for logs: /var/log/ejabberd/
--spool dir Database spool dir: /var/spool/ejabberd/eja

Help?

Thank you in advance!
-Chris.

ok, I can export the database

ok,

I can export the database with dump/backup now, forgot "--node". And I was able to run a clean (no data) instance of ejabberd running MySQL. So it's working -- except the data.

I really desperatly need a pointer on how to export from amnesia and how to import into SQL..

Help!

-Chris

Plan with care

creiss wrote:

Using the internal db currently, and want to migrate to SQL (on the same host) now,

Notice: once you migrate from Mnesia to external, there isn't any way to go back to Mnesia.

The only good reasons I know for migrating from Mnesia storage to other external storage are: integration with previosly existing data; very tight integration with other systems that need continuous access to roster; very big server for which Mnesia is not recommended.

creiss wrote:

ideally by socket, not tcp.

I don't know what method is used by the Erlang's MySQL library used by ejabberd.

creiss wrote:

A "ejabberdctl ejabberd@alpha-labs.net backup ejabberd.db" gives me this:

This backups your Mnesia database, this is not intended for migration to SQL.

creiss wrote:

How would I go about porting data? I was thinking along the lines of dumping, changing to mysql, re-importing.

The migration from Mnesia to SQL involves:

  1. Export some tables from Mnesia to SQL files:
    • using manually ejd2odbc
    • or using the command export2odbc included in mod_ctlextra. This module can be downloaded and compiled from ejabberd-modules SVN
  2. If not yet done, install in ejabberd the files mysql*.beam.
  3. Create the MySQL database and tables
  4. Import the SQL files in the database
  5. Configure ejabberd to use some ODBC modules instead of default ones
Syndicate content