In diesem Artikel beschreibe ich kurz, wie wir eine laufende Grafana Instanz mit einer SQLite Datenbank in eine MySQL Datenbank umziehen können.
Zuerst müssen wir auf unserem MySQL-Server eine Datenbank mit einem Benutzer anlegen, der vollen Zugriff auf die Datenbank besitzt.
create database grafana;
CREATE USER 'grafana'@'localhost' IDENTIFIED BY 'P@ssw0rd123!';
grant all privileges on grafana.* to 'grafana'@'localhost';
flush privileges;
quit
Im nächsten Schritt laden wir uns das Datenbank-Migrations-Tool herunter, welches uns dann nachher eine entsprechende SQL-Dump-Datei erstellt, welche wir dann einspielen können.
cd /opt
git clone https://github.com/grafana/database-migrator.git
Jetzt müssen wir einmal unseren Grafana-Server einmal stoppen und dann unsere grafana.db SQLite Datenbankdatei in einen MySQL-Dump konvertieren.
systemctl stop grafana-server
./sqlitedump.sh /var/lib/grafana/grafana.db > /opt/dump.sql
Damit unser Grafana-Server nach dem Einspielen der Daten auch eine Verbindung zur neuen Datenbank herstellen kann, müssen wir die ini Datei wie folgt anpassen.
#################################### Database ####################################
[database]
# You can configure the database connection by specifying type, host, name, user and password
# as separate properties or as on string using the url properties.
# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql
host = mysql-server:3306
name = grafana
user = grafana
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = P@ssw0rd123!
Jetzt müssen wir einmal den Grafana -Server starten und im Anschluss wieder stoppen. Damit soll Grafana einmal die Tabellen anlegen die benötigt werden.
systemctl stop grafana-server && systemctl start grafana-server
Zum Abschluss müssen die Daten einmal importiert werden. Der einfachste Weg wäre hier über eine phpMyAdmin Installation die Daten so in die Datenbank zu importieren.