ConfigDB SQL Datenbank vom Raspberry auf Server als MYSQL umziehen lassen

Begonnen von Ice81, 03 Juli 2019, 11:37:03

Vorheriges Thema - Nächstes Thema

Ice81

Moin zusammen,

Ich hätte da mal gerne ein Problem. Habe die Suchfunktion schon probiert, bin aber leider nicht fündig geworden  :-\
Ich möchte meine ConfigDB vom Raspberry Pi auf meinen Qnap Server umziehen lassen. Leider wird mein Unterfangen beim Importieren abgebrochen
(PRAGMA foreign_keys = OFF;


MySQL meldet: Dokumentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PRAGMA foreign_keys=OFF' at line 1 )


Hat jemand auch schonmal dieses Problem gehabt ?

Was Ich bisher gemacht habe:
Versucht die Datenbank so in MySQL einzupflegen,
dann habe Ich versucht mit einem externen Programm (DB Browser) die Datenbank umzuwandeln,
als letztes habe Ich eine Dump datei erstellt aus FHEM heraus (configdb dump backup).
Leider alles ohne Erfolg.
Weiß jemand woran es noch liegen kann ?

Lg
Ralf

betateilchen

Moin,

ist die Datenbank auf dem Raspberry jetzt auch schon MySQL oder hast Du da etwas anderes verwendet?

Wenn es MySQL ist: stimmen die MySQL Versionen von Raspberry und QNAP überein?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ice81

Moin,
auf dem Raspberry ist eine Sqlite3 Datenbank vorhanden.
Auf dem Server:
Server-Typ: MySQL
Server Version: 5.1.73-log - Source distribution


CoolTux

Du willst also Deine Daten von sqlite3 zu MySQL migrieren.
Du hast ein Dump der sqlite3 DB gemacht!? Und diesen in mySQL importiert???
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Ice81


betateilchen

Die Idee ist überhaut nicht doof und der Weg über den dump ist prinzipiell schon richtig.

ABER: man muss natürlich in den dump-Dateien die Syntax manuell anpassen, wenn man von einem auf das andere Datenbanksystem wechseln möchte.

Das "PRAGMA" Statement, das in der Fehlermeldung angemeckert wird, dürfte es in MySQL vermutlich nicht geben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Suche mal im Internet nach "migrate sqlite3 to mysql" da gibt es einige Anleitungen und Hinweise, wie man am besten vorgeht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Zitat von: Ice81 am 03 Juli 2019, 12:09:33
So wie Du es schreibst, muss es wohl eine doofe Idee sein

Wie Udo schon schrieb ist es ok so. Ich wollte nur klären wie weit Du gekommen bist. Du hast nicht geschrieben das Du importiert hast. Das hat mir gefehlt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

Zitat von: CoolTux am 03 Juli 2019, 12:17:55
Du hast nicht geschrieben das Du importiert hast. Das hat mir gefehlt.

äh...

Zitat von: Ice81 am 03 Juli 2019, 11:37:03
Leider wird mein Unterfangen beim Importieren abgebrochen
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ice81

Ich habe es hinbekommen, die Datenbank wurde fehlerfrei importiert.

Anbei mein Howto:

Ich habe die angehängte Datei in den Ordner von FHEM gepackt wo auch meine ConfigDB.db liegt.
Dann per Putty auf den PI eingeloggt und in das Verzeichnis gewechselt. per CHMOD 755 dump_for_mysql.py die Datei ausführbar gemacht.
Als letzten Schritt dieses Komando ausgeführt sudo sqlite3 configDB.db .dump | python /opt/fhem/dump_for_mysql.py > dumped_data.sql und die Datei zum Importieren wird erstellt.

Jetzt kommt leider mein nächstes Problem  :-[
FHEM startet nicht mehr.
Fehler lautet: sudo /etc/init.d/fhem start
Starting fhem...
Can't locate RTypes.pm in @INC (you may need to install the RTypes module) (@INC                                                                                                                      contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local                                                                                                                     /share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr                                                                                                                     /lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl                                                                                                                      /usr/lib/arm-linux-gnueabihf/perl-base) at fhem.pl line 591.

Muss Ich in der Datenbank einen Pfad ändern, damit er die RTypes.pm auf dem Raspi findet ?


betateilchen

Zitat von: Ice81 am 05 Juli 2019, 12:40:40
Muss Ich in der Datenbank einen Pfad ändern, damit er die RTypes.pm auf dem Raspi findet ?

Nein, bitte nicht manuell in der Datenbank rumpfuschen.

Probiere bitte folgendes mit root-Rechten auf der Konsole:



cd /opt/fhem

perl -I /opt/fhem/FHEM fhem.pl configDB



Wenn das funktioniert und Dein FHEM dann erreichbar ist, kontrolliere bitte, ob im device "global" das Attribut modpath auf "." gesetzt ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ice81



Zitat von: betateilchen am 05 Juli 2019, 13:19:49
Nein, bitte nicht manuell in der Datenbank rumpfuschen.

Probiere bitte folgendes mit root-Rechten auf der Konsole:



cd /opt/fhem

perl -I /opt/fhem/FHEM fhem.pl configDB



Wenn das funktioniert und Dein FHEM dann erreichbar ist, kontrolliere bitte, ob im device "global" das Attribut modpath auf "." gesetzt ist.

Ich bin wieder auf die vorhandene sql Datenbank umgestiegen. Ja Modpath ist auf . gesetzt.

Gesendet von meinem SM-G950F mit Tapatalk


Ice81

Moinsen,
Weiß jemand Rat?
Ich habe  den Modpath testweise auf /opt/fhem geändert,  hat aber nichts gebracht,  außer das das Telegrammodul anfing zu meckern.

Gesendet von meinem SM-G950F mit Tapatalk