Skip to main content

Grafana SQLite-Datenbank in eine MySQL-Datenbank migrieren

Einleitung

In diesem kleinen Artikel geht es darum, wie wir unsere vorhandene SQLite-Datenbank unserer Grafana-Installation in eine MySQL-Datenbank konvertieren können. Dadurch können wir dann unsere Daten unserer vorhandenen Grafana Installation übernehmen und müssen dann nicht alles neu anlegen. 

Durchführung

Im allerersten Schritt müssen wir natürlich eine MySQL-Datenbank erstellen mit einem MySQL-Benutzer der entsprechenden Berechtigungen auf die Datenbank hat. 

create database grafana;
CREATE USER 'grafana'@'localhost' IDENTIFIED BY 'P@ssw0rd123!';
grant all privileges on grafana.* to 'grafana'@'localhost';
flush privileges;
quit

Dann laden wir uns das Datenbank-Migrations-Tool herunter, welches uns dann eine entsprechende SQL-Dump-Datei erstellt, die wir dann bei uns einspielen können. 

cd /opt
git clone https://github.com/grafana/database-migrator.git

Im nächsten Schritt stoppen wir unseren Grafana-Server.

systemctl stop grafana-server

Jetzt konvertieren wir unsere grafana.db in eine SQL-Datei, welche wir dann einspielen können. 

./sqlitedump.sh /var/lib/grafana/grafana.db > /opt/dump.sql

Damit die Tabellen in der Datenbank vorab erstellt werden, müssen wir jetzt einmal die Login-Daten zur Datenbank in der .ini Datei unserer Grafana-Installation eintragen.

#################################### 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 starten wir einmal unseren Grafana-Server wieder damit dieser einmal die SQL-Tabellen anlegt, und sobald das Webinterface erreichbar ist stoppen wir den Server wieder. 

systemctl start grafana-server
systemctl stop grafana-server

Im letzten Schritt muss das Backup unserer Grafana-Datenbank einmal eingespielt werden. Ich habe hierfür die Importieren-Funktion von meiner vorhandenen phpMyAdmin Installation verwendet. Danach kann der Grafana-Server wieder gestartet werden.

systemctl start grafana-server

Jetzt sollten alle Daten übernommen sein und die Daten werden in einer MySQL-Datenbank abgelegt.