NEWS
Frage : Migrate MySQL nach Influxdb
-
@JackGruber
Ich komme leider auch nicht weiter ...
Habe deinen Script von Github installiert und bekomme folgende Ausgabe:pi@raspberrypi:~/iobroker_mysql_2_influxdb $ python3 migrate.py all Migrate 'all' datapoint(s) ... Total metrics in ts_number: 0 Total metrics in ts_bool: 0 Total metrics in ts_string: 0 Migrated: 0Das ganze passiert innerhalb einer Sekunde .
Die Influxdb habe ich über den iobroker Adapter angelegt.
Hi @simatec, hab einen mini Fehler im Script gefunden. Durch einen BUG musste das
ALLgroßgeschrieben werden.
Hab das Script angepasst, einfach neu herunterladen oder dasALLgroßschreiben. -
Hi @simatec, hab einen mini Fehler im Script gefunden. Durch einen BUG musste das
ALLgroßgeschrieben werden.
Hab das Script angepasst, einfach neu herunterladen oder dasALLgroßschreiben.@JackGruber
Danke für den Tipp ... Ich hatte es auch einzeln versucht und dann auch jedes Objekt einzeln importiert.
War zwar etwas Aufwand aber ging super ;-) -
Wie und wo kann ich das Script benutzen? In iobroker javascript oder Konsole? iobroker läuft bei mir im Docker Container....
@base python auf deinem PC installieren, das script wie auf der git seite beschrieben installieren und benutzen.
-
@base python auf deinem PC installieren, das script wie auf der git seite beschrieben installieren und benutzen.
ich bekomme in diese Zeile einen Syntax Error:
print(f"Processing row {processed_rows + 1:,} to {processed_rows + len(selected_rows):,} from LIMIT {start_row:,} / {start_row + query_max_rows:,} " + table + " - " + metric['name'] + " (" + str(metric_nr) + "/" + str(metric_count) + ")")er meckert die Anführungsstriche vor table an
-
ich bekomme in diese Zeile einen Syntax Error:
print(f"Processing row {processed_rows + 1:,} to {processed_rows + len(selected_rows):,} from LIMIT {start_row:,} / {start_row + query_max_rows:,} " + table + " - " + metric['name'] + " (" + str(metric_nr) + "/" + str(metric_count) + ")")er meckert die Anführungsstriche vor table an
-
@base
So war es bei mir auch.
Hast du mal versucht, die Daten einzeln pro Objekt zu importieren? Das half bei mir. -
ich bekomme in diese Zeile einen Syntax Error:
print(f"Processing row {processed_rows + 1:,} to {processed_rows + len(selected_rows):,} from LIMIT {start_row:,} / {start_row + query_max_rows:,} " + table + " - " + metric['name'] + " (" + str(metric_nr) + "/" + str(metric_count) + ")")er meckert die Anführungsstriche vor table an
@base was für eine python version nutzt du?
Bei mir läuft das script ohne probleme durch.

-
@base was für eine python version nutzt du?
Bei mir läuft das script ohne probleme durch.

@JackGruber hab jetzt Version 3.7.9, hatte vorher 3.9, da ging gar nichts.
Den Befehl pip install -r requirements.txt habe ich in der Eingabeaufforderung im entsprechenden Ordner durchgeführt, war das so richtig?
-
@JackGruber hab jetzt Version 3.7.9, hatte vorher 3.9, da ging gar nichts.
Den Befehl pip install -r requirements.txt habe ich in der Eingabeaufforderung im entsprechenden Ordner durchgeführt, war das so richtig?
@base Ja, genau, dann sollte er alle nötigen module installieren.
Hm, muss ich mir mal mit python 3.9 anschauen ... -
@base Ja, genau, dann sollte er alle nötigen module installieren.
Hm, muss ich mir mal mit python 3.9 anschauen ...@JackGruber wie gesagt, 3.9 hat gar nicht funktioniert bei mir und bei der 3.7.9 bekomme ich die Fehlermeldung
-
@base Ja, genau, dann sollte er alle nötigen module installieren.
Hm, muss ich mir mal mit python 3.9 anschauen ...@JackGruber Habe gerade festgestellt, dass die Fehlermeldung nur bei der 64bit Version kommt.
Bei der 32èr gehts.
Leider bekomme ich jetzt noch einen:MySQL connection error
'192.168.1.100' -
@JackGruber Habe gerade festgestellt, dass die Fehlermeldung nur bei der 64bit Version kommt.
Bei der 32èr gehts.
Leider bekomme ich jetzt noch einen:MySQL connection error
'192.168.1.100'@base hm komisch grad mit Python 3.9 64 bit getetet und geht 1a.
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]Das ist die ganze Fehlerausgabe?
-
@base hm komisch grad mit Python 3.9 64 bit getetet und geht 1a.
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]Das ist die ganze Fehlerausgabe?
@JackGruber ja
RESTART: C:\Users\Base\Downloads\iobroker_mysql_2_influxdb-master\iobroker_mysql_2_influxdb-master\migrate.py
MySQL connection error
'192.168.1.100' -
@JackGruber ja
RESTART: C:\Users\Base\Downloads\iobroker_mysql_2_influxdb-master\iobroker_mysql_2_influxdb-master\migrate.py
MySQL connection error
'192.168.1.100'@base teste doch mal in einer powershell folgendes:
Test-NetConnection 192.168.1.100 -p 3307 -
@base teste doch mal in einer powershell folgendes:
Test-NetConnection 192.168.1.100 -p 3307@JackGruber Lernen Sie das neue plattformübergreifende PowerShell kennen – https://aka.ms/pscore6 PS C:\Users\Base> Test-NetConnection 192.168.1.100 -p 3307 WARNUNG: TCP connect to (192.168.1.100 : 3307) failed
ComputerName : 192.168.1.100
RemoteAddress : 192.168.1.100
RemotePort : 3307
InterfaceAlias : WiFi
SourceAddress : 192.168.1.72
PingSucceeded : True
PingReplyDetails (RTT) : 6 ms
TcpTestSucceeded : False -
@base teste doch mal in einer powershell folgendes:
Test-NetConnection 192.168.1.100 -p 3307@JackGruber PS C:\Users\Base> Test-NetConnection 192.168.1.100 -p 3306 ComputerName : 192.168.1.100
RemoteAddress : 192.168.1.100
RemotePort : 3306
InterfaceAlias : WiFi
SourceAddress : 192.168.1.72
TcpTestSucceeded : TruePS C:\Users\Base>
-
@JackGruber PS C:\Users\Base> Test-NetConnection 192.168.1.100 -p 3306 ComputerName : 192.168.1.100
RemoteAddress : 192.168.1.100
RemotePort : 3306
InterfaceAlias : WiFi
SourceAddress : 192.168.1.72
TcpTestSucceeded : TruePS C:\Users\Base>
@base oh stimt, MySQL standard port ist 3306 :)
Hm also der port ist erreichbar, aber das script kann sich ned verbinden ...
Hast du Verschlüsselung für MySQL aktiviert?änder mal folgende Zeilen
try: MYSQL_CONNECTION = pymysql.connect(host = db['MySQL']['host'], port = db['MySQL']['port'], user = db['MySQL']['user'], password = db['MySQL']['password'], db = db['MySQL']['database']) except pymysql.OperationalError as error: print (error) sys.exit(1) except Exception as ex: print("MySQL connection error") print(ex) sys.exit(1)in nur das ab:
MYSQL_CONNECTION = pymysql.connect(host = db['MySQL']['host'], port = db['MySQL']['port'], user = db['MySQL']['user'], password = db['MySQL']['password'], db = db['MySQL']['database'])Achte darauf, das vor den
MYSQL_CONNECTIONkeine lehrzeichen sind!
Danach post mal die ganze Fehlerausgabe. -
@base oh stimt, MySQL standard port ist 3306 :)
Hm also der port ist erreichbar, aber das script kann sich ned verbinden ...
Hast du Verschlüsselung für MySQL aktiviert?änder mal folgende Zeilen
try: MYSQL_CONNECTION = pymysql.connect(host = db['MySQL']['host'], port = db['MySQL']['port'], user = db['MySQL']['user'], password = db['MySQL']['password'], db = db['MySQL']['database']) except pymysql.OperationalError as error: print (error) sys.exit(1) except Exception as ex: print("MySQL connection error") print(ex) sys.exit(1)in nur das ab:
MYSQL_CONNECTION = pymysql.connect(host = db['MySQL']['host'], port = db['MySQL']['port'], user = db['MySQL']['user'], password = db['MySQL']['password'], db = db['MySQL']['database'])Achte darauf, das vor den
MYSQL_CONNECTIONkeine lehrzeichen sind!
Danach post mal die ganze Fehlerausgabe.RESTART: C:\Users\Base\Downloads\iobroker_mysql_2_influxdb-master\iobroker_mysql_2_influxdb-master\migrate.py
Traceback (most recent call last):
File "C:\Users\Base\Downloads\iobroker_mysql_2_influxdb-master\iobroker_mysql_2_influxdb-master\migrate.py", line 33, in <module>
MYSQL_CONNECTION = pymysql.connect(host = db['192.168.1.100']['host'],
KeyError: '192.168.1.100' -
RESTART: C:\Users\Base\Downloads\iobroker_mysql_2_influxdb-master\iobroker_mysql_2_influxdb-master\migrate.py
Traceback (most recent call last):
File "C:\Users\Base\Downloads\iobroker_mysql_2_influxdb-master\iobroker_mysql_2_influxdb-master\migrate.py", line 33, in <module>
MYSQL_CONNECTION = pymysql.connect(host = db['192.168.1.100']['host'],
KeyError: '192.168.1.100'@base ok, pass bitte die
database.jsonan, nicht das script, so wie in derdatabase.json.exampleals beispiel!