Kategorie: LiveConfig
Erstellt: 09.04.2020
Aktualisiert: 16.09.2024
Sobald auf einer LiveConfig-Installation mehr als rund 400-500 Hostingverträge angelegt sind, ist es meist effizienter, die interne LiveConfig-Datenbank mit MySQL bzw. MariaDB statt mit der standardmäßig genutzten SQLite-Datenbank zu betreiben.
Diese Anleitung beschreibt die notwendigen Schritte, um die Daten von SQLite in eine MySQL-/MariaDB-Datenbank zu migrieren.
Zum Export der Daten aus SQLite laden Sie das Tool lcdbdump herunter und erzeugen Sie damit einen MySQL-kompatiblen Dump der SQLite-Datenbank:
root@srv:~# wget http://download.liveconfig.com/tools/lcdbdump
root@srv:~# chmod 755 lcdbdump
root@srv:~# ./lcdbdump /var/lib/liveconfig/liveconfig.db dump.sql
Melden Sie sich als root-Benutzer an der MySQL-Konsole an und erzeugen Sie einen neuen Benutzer und eine neue Datenbank für LiveConfig. Sie können dafür einen beliebigen Benutzer- und Datenbanknamen wählen, aber verwenden Sie unbedingt ein sicheres (!) Passwort:
mysql> CREATE USER 'liveconfig'@'localhost' IDENTIFIED BY 'SaFePaSsWoRd';
mysql> CREATE DATABASE LIVECONFIG;
mysql> GRANT ALL PRIVILEGES ON LIVECONFIG.* TO 'liveconfig'@'localhost';
Falls MySQL auf einem anderen Server als LiveConfig läuft, tragen Sie statt localhost
die entsprechende IP-Adresse ein.
Nun importieren Sie die vorbereitete MySQL-Tabellenstruktur. Im Verzeichnis /usr/share/doc/liveconfig
liegt diese als komprimierter SQL-Dump bereit:
root@srv:~# zcat /usr/share/doc/liveconfig/db-mysql.sql.gz | mysql -u liveconfig -p -h localhost LIVECONFIG
Enter password: ************
Importieren Sie nun die in Schritt 1 exportierten Daten in MySQL:
root@srv:~# mysql -u liveconfig -p -h localhost LIVECONFIG < dump.sql
Enter password: ************
Öffnen Sie die Konfigurationsdatei /etc/liveconfig/liveconfig.conf
und bearbeiten die Datenbankeinstellungen, z.B.:
db_driver = mysql
db_host = localhost
db_name = LIVECONFIG
db_user = liveconfig
db_password = SaFePaSsWoRd
Starten Sie LiveConfig nun neu (service liveconfig restart
). Falls LiveConfig nicht startet, werfen Sie einen Blick in die Logdatei (/var/log/liveconfig/liveconfig.log
).
Sollten Sie (aus welchen Gründen auch immer) von einer MySQL-Datenbank zurück auf SQLite wechseln wollen (oder müssen), gehen Sie bitte wie folgt vor:
Die SQLite-Datenbank von LiveConfig liegt immer unter /var/lib/liveconfig/liveconfig.db
. Wenn Sie LiveConfig längere Zeit mit MySQL genutzt haben, muss das SQLite-Datenbankschema aktualisiert werden. Das geht recht einfach:
service liveconfig stop
)/etc/liveconfig/liveconfig.conf
die Datenbank zurück auf SQLite (db_driver = sqlite
)service liveconfig start
)service liveconfig stop
).Sollte es Probleme gegeben haben, prüfen Sie die Log-Datei unter /var/log/liveconfig/liveconfig.log
.
Exportieren Sie nun die MySQL-Daten. Den MySQL-Benutzernamen und -Passwort passen Sie entsprechend aus der Konfiguration aus der liveconfig.conf
an:
root@srv:~# echo "PRAGMA foreign_keys=off;" >dump.sql
root@srv:~# echo "PRAGMA synchronous=off;" >>dump.sql
root@srv:~# echo "BEGIN;" >>dump.sql
root@srv:~# mysqldump --no-create-info --complete-insert --compact --skip-extended-insert -u liveconfig -p LIVECONFIG >>dump.sql
root@srv:~# echo "COMMIT;" >>dump.sql
root@srv:~# sed -i -e 's/\\'\''/'\'''\''/g' -e 's/\\r/\r/g' -e 's/\\n/\n/g' dump.sql
Mit folgenden Befehlen legen Sie eine neue SQLite-Datenbank an und importieren die Daten:
root@srv:~# sqlite3 /var/lib/liveconfig/liveconfig.db '.schema' | grep -v 'sqlite_' >schema.sql
root@srv:~# sqlite3 liveconfig-neu.db <schema.sql
root@srv:~# sqlite3 liveconfig-neu.db <dump.sql
root@srv:~# chmod 0600 liveconfig-neu.db
root@srv:~# chown liveconfig:liveconfig liveconfig-neu.db
Anschließend können Sie die Datei /var/lib/liveconfig/liveconfig.db
durch die neu erstellte liveconfig-neu.db
ersetzen.
Sollte es bei einem der Schritte Warnungen oder Fehlermeldungen geben, wenden Sie sich am besten damit an support@liveconfig.com.