Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Frage : Migrate MySQL nach Influxdb

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Frage : Migrate MySQL nach Influxdb

    This topic has been deleted. Only users with topic management privileges can see it.
    • JackGruber
      JackGruber @base last edited by

      @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?

      B 1 Reply Last reply Reply Quote 0
      • B
        base @JackGruber last edited by

        @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 1 Reply Last reply Reply Quote 0
        • JackGruber
          JackGruber @base last edited by

          @base teste doch mal in einer powershell folgendes:

          Test-NetConnection 192.168.1.100 -p 3307

          B 2 Replies Last reply Reply Quote 0
          • B
            base @JackGruber last edited by

            @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

            1 Reply Last reply Reply Quote 0
            • B
              base @JackGruber last edited by

              @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 : True

              PS C:\Users\Base>

              JackGruber 1 Reply Last reply Reply Quote 0
              • JackGruber
                JackGruber @base last edited by

                @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_CONNECTION keine lehrzeichen sind!
                Danach post mal die ganze Fehlerausgabe.

                B 1 Reply Last reply Reply Quote 0
                • B
                  base @JackGruber last edited by

                  @JackGruber

                  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'

                  JackGruber 1 Reply Last reply Reply Quote 0
                  • JackGruber
                    JackGruber @base last edited by

                    @base ok, pass bitte die database.json an, nicht das script, so wie in der database.json.example als beispiel!

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      base @JackGruber last edited by

                      @JackGruber

                      ok, jetzt hats geklappt. War ne schwere Geburt. Vielen Dank für das Script, deinen Support und deine Geduld😁

                      JackGruber 1 Reply Last reply Reply Quote 0
                      • JackGruber
                        JackGruber @base last edited by

                        @base na dann ist ja gut wenns geklappt hat 🙂

                        1 Reply Last reply Reply Quote 0
                        • E
                          Edelweiss last edited by

                          @gender ,
                          ich habe nochmal eine Frage zu deiner Beschreibung.
                          Wie und wo setzt man den ack Wert auf "Boolean True" ?

                          Wäre dankbar dafür , habe bis dato das Textfile erstellt
                          Gruß

                          JackGruber G 2 Replies Last reply Reply Quote 0
                          • JackGruber
                            JackGruber @Edelweiss last edited by

                            @edelweiss der Qert steht standardmäßig auf true, kann aber in der database.json mittels store_ack_boolean geändert werden.

                            S 1 Reply Last reply Reply Quote 0
                            • G
                              gender @Edelweiss last edited by

                              @edelweiss

                              Der Wert ist oben in meiner Anleitung im Python-Skript bereits auf true gesetzt. Du selbst musst den also nicht "irgendwo" setzen; dass passiert bereits in dem Python-Skript.

                              1 Reply Last reply Reply Quote 0
                              • E
                                Edelweiss last edited by Edelweiss

                                @gender
                                @JackGruber

                                danke für eure Antworten.

                                Bin hier noch komplett neu (Docker und influxDBs)

                                Habe jetzt den Import in meinen Docker geladen und mit dem Befehl

                                influx -import -path=import.txt
                                

                                gestartet.

                                Er bring mir aber dann die Meldung

                                2021/02/05 21:43:19 error: error parsing query: found StromzaehlerGesamt, expect
                                ed SELECT, DELETE, SHOW, CREATE, DROP, EXPLAIN, GRANT, REVOKE, ALTER, SET, KILL 
                                at line 1, char 1
                                

                                Die Datenbank hat er allerdings angelegt, aber es sind keien Measurements darin

                                In meinem import.txt sieht es folgendermaßen aus

                                
                                #DDL 
                                CREATE DATABASE Dummschul
                                
                                #DML
                                #CONTEXT-DATABASE: Dummschul
                                
                                StromzaehlerGesamt ack=True,from="system.adapter.wiffi-wz.0",q=0.0,value=0.902 1612560689242000000
                                StromzaehlerGesamt ack=True,from="system.adapter.wiffi-wz.0",q=0.0,value=0.2 1612560689242000000
                                StromzaehlerGesamt ack=True,from="system.adapter.wiffi-wz.0",q=0.0,value=0.249 1612560629226000000
                                StromzaehlerGesamt ack=True,from="system.adapter.wiffi-wz.0",q=0.0,value=0.893 1612560629225000000
                                

                                Könnte ihr mir Bitte noch einen Anstoß geben 😇

                                Danke

                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  gender @Edelweiss last edited by

                                  @edelweiss
                                  Hmm, ich glaube du bist dann beim Importieren nicht an der richtigen Stelle. Du musst (soweit ich mich erinnere) nur in die Komandokonsole von Influx und dort den import-Befehl ausführen und nicht direkt in der Konsole schon in die Datenbank reingehen...

                                  1 Reply Last reply Reply Quote 0
                                  • E
                                    Edelweiss last edited by Edelweiss

                                    Hallo zusammen,
                                    ich wollte nur ein kurzes Feedback geben woran es gelegen hat.

                                    Scheinbar stimmt etwas nicht mit der Txt Datei (sie hat aber die c7e8c4c9-bcc3-4c45-96e5-0aa817ecde85-grafik.png Kennung ) , welche aus dem py Script generiert wird.

                                    Ich habe nämlich den Inhalt daraus 1:1 in die influx NOAA_ data.txt kopiert und danach funktionierte es, beim importieren

                                    Desweiteren funktionierte es bei mir auch nur, wenn der haeder mit jeweils einer Zeile Versatz eingetragen wird.

                                    #DDL 
                                    
                                    CREATE DATABASE Dummschul
                                    
                                    #DML
                                    
                                    #CONTEXT-DATABASE: Dummschul
                                    

                                    Danke für die Hilfe
                                    Gruß

                                    1 Reply Last reply Reply Quote 1
                                    • S
                                      Sputnik24 @JackGruber last edited by

                                      @jackgruber

                                      Vielen Dank für das tolle Script. Das Script läuft bei mir erfolgreich durch, Grafana zeigt mir auch alle Datenpunkte an, sagt aber "No data". Die Daten werden vom sql Adapter in eine MariaDB auf der Synology gespeichert.

                                      Muss ich im Script etwas anpassen?

                                      Danke

                                      JackGruber 1 Reply Last reply Reply Quote 0
                                      • JackGruber
                                        JackGruber @Sputnik24 last edited by

                                        @sputnik24
                                        Hört sich eher danach an, dass etwas in der auswertung nicht stimmt.

                                        Einfach das influx Kommandozeilenwerkzeug per influx öffnen, dann die Datenbank auswählen
                                        use <DATENBANK> und per SELECT * FROM <MEASUREMENT_NAME> LIMIT 5 sich ein paar Datensätze anzeigen lassen um dies zu überprüfen.

                                        S M 2 Replies Last reply Reply Quote 0
                                        • S
                                          Sputnik24 @JackGruber last edited by Sputnik24

                                          @jackgruber Ich lass iobroker mittlerweile Daten in influxdb speichern. Diese werden mir in Grafana auch angezeigt. Ich vermute ein Problem mit dem timestamp Format.

                                          Ich hab die database nochmal gelöscht und neu angelegt, jetzt funktioniert es.

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            marco-mh @JackGruber last edited by

                                            @jackgruber Hallo, ich wollte mich auch mal versuchen an deinem Script. Meine MYSQL DB umfasst mittlerweile 1,8 Mio Einträge. Ich bin allerdings ne absolute NULL in sachen Scripte und bekomme schon graue Haare.
                                            Jetzt hab ich das Script mit meinen Daten, so das ich denke das es richtig ist, geändert. Nun bekomme ich folgende meldung

                                            
                                            C:\Users\marco\Downloads\iobroker_mysql_2_influxdb-master>migrate.py ALL
                                              File "C:\Users\marco\Downloads\iobroker_mysql_2_influxdb-master\migrate.py", line 156
                                                print(f"Processing row {processed_rows + 1:,} to {processed_rows + len(selected_rows):,} from LIMIT {start_row:,} / {start_row + query_max_rows:,} " +
                                                                                                                                                                                                   ^
                                            SyntaxError: invalid syntax
                                            
                                            C:\Users\marco\Downloads\iobroker_mysql_2_influxdb-master>
                                            
                                            

                                            wo kann hier der Fehler sein?

                                            Meine geänderten Daten sehen so aus

                                            
                                            {\rtf1\ansi\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
                                            {\*\generator Riched20 10.0.14393}\viewkind4\uc1 
                                            \pard\f0\fs22\lang1033\par
                                                MYSQL_CONNECTION = pymysql.connect(host=db['MySQL']['192.168.178.8'],\par
                                                                                   port=db['MySQL']['3306'],\par
                                                                                   user=db['MySQL']['root'],\par
                                                                                   password=db['MySQL']['XXXXXX'],\par
                                                                                   db=db['MySQL']['database'])\par
                                            except pymysql.OperationalError as error:\par
                                                print(error)\par
                                                sys.exit(1)\par
                                            except Exception as ex:\par
                                                print("MySQL connection error")\par
                                                print(ex)\par
                                                sys.exit(1)\par
                                            \par
                                            \par
                                            INFLUXDB_CONNECTION = InfluxDBClient(host=db['InfluxDB']['192.168.178.102'],\par
                                                                                 ssl=db['InfluxDB']['ssl'],\par
                                                                                 verify_ssl=True,\par
                                                                                 port=db['InfluxDB']['22'],\par
                                                                                 username=db['InfluxDB']['iobroker'],\par
                                                                                 password=db['InfluxDB']['XXXXXX'],\par
                                                                                 database=db['InfluxDB']['iobroker_import'])\par
                                            }
                                            
                                            

                                            Danke für die hilfe. Gruß Marco

                                            JackGruber 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            759
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            31
                                            151
                                            18313
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo