===== 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: Re-enter new password: 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 ''; $ 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: 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: "" 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(<<"">>, sql). ok Die Konsole mit [STRG] + [C] und [STRG] + [C] verlassen und ejabberd wieder starten: $ exit $ systemctl start ejabberd.service