Inhaltsverzeichnis
Wechsel von mnesia zu MariaDB
Voraussetzung
- Diese Howtos setzt ejabberd Installation voraus.
Einleitung
mnesia hat eine Größenbeschränkung von 2GB. Je nach dem, wie viele Benutzer:innen dein XMPP Server haben wird und wie großzügig du mit den Speicherlimits (z.B. für MAM) bist, kann das schnell zu klein sein. Mit MariaDB gibt es diese Einschränkung nicht.
Einrichtung
MariaDB installieren:
$ apt -y install mariadb-server mariadb-client
MariaDB Installation absichern:
$ mysql_secure_installation Change the root password? [Y/n] y New password: <supergeheim> Re-enter new password: <supergeheim> Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Zum Datenbankserver verbinden und Datenbank erstellen:
$ mysql -u root -p
$ mysql> CREATE DATABASE ejabberd; $ mysql> CREATE USER 'ejabberd'@'localhost' IDENTIFIED BY '<geheim>'; $ mysql> GRANT ALL PRIVILEGES ON ejabberd . * TO 'ejabberd'@'localhost'; $ mysql> FLUSH PRIVILEGES; $ mysql> exit;
Als ejabberd weiterarbeiten:
$ su - ejabberd
SQL Schema laden und in Datenbank importieren:
$ wget https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.sql $ mysql -D ejabberd -u ejabberd -p < mysql.sql Enter password: <geheim>
ejabberd Konfiguration anpassen:
$ jed opt/ejabberd/conf/ejabberd.yml
Suche nach:
auth_password_format: scram auth_scram_hash: sha512
Und füge darunter ein:
sql_type: mysql sql_server: "localhost" sql_database: "ejabberd" sql_username: "ejabberd" sql_password: "<geheim>" auth_method: sql default_db: sql default_ram_db: sql
Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.
Für die Migration von mnesia zu MariaDB musst du den ejabberd stoppen und manuell im DEBUG Modus starten:
$ exit $ systemctl stop ejabberd.service $ su - ejabberd $ ./opt/ejd/bin/ejabberdctl debug ... 2022-12-04 10:36:33.999069+01:00 [info] Start accepting UDP connections at [::]:3478 for ejabberd_stun 2022-12-04 10:36:33.999215+01:00 [info] Start accepting TCP connections at [::]:5280 for ejabberd_http 2022-12-04 10:36:33.999280+01:00 [info] Start accepting TLS connections at [::]:5443 for ejabberd_http 2022-12-04 10:36:33.999409+01:00 [info] Start accepting TCP connections at [::]:5269 for ejabberd_s2s_in 2022-12-04 10:36:33.999453+01:00 [info] Start accepting TLS connections at [::]:5223 for ejabberd_c2s 2022-12-04 10:36:33.999505+01:00 [info] Start accepting TCP connections at [::]:5222 for ejabberd_c2s ... $ (ejabberd@localhost)2> ejd2sql:export(<<"<beispiel.de>">>, sql). ok
Die Konsole mit [STRG] + [C] und [STRG] + [C] verlassen und ejabberd wieder starten:
$ exit $ systemctl start ejabberd.service