Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. MYSQL Profis unter uns?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MYSQL Profis unter uns?

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

      stehen diese tabellen für sich? oder hat diese noch eine datenrelation zu einer anderen tabelle.
      wenn ja, dann musst du mit den ids aufpassen, da ja dann die relation in der anderen datenbank nicht mehr passt.

      wenn nein, dann kannst du die daten in dern neuen tabelle:
      a) wenn die spalte für ids nicht mit dem unique kenner angelegt wurde einfach einfügen.
      b) wenn die id spalte mit unique kenner, dann entwender ohne id einfügen so dass die id neu vergeben wird oder neu nummerieren.

      aber erst einmal mit alternative a probieren.
      eine Oberfläche wie heidiSQL ist auf jeden fall hilfreich, da es dir das nachschlagen einiger befehle für die console erspart.

      1 Reply Last reply Reply Quote 0
      • AxelF1977
        AxelF1977 last edited by

        Ok, dann hab ich viel zu lesen.

        Ich hatte auch überlegt alles in eine Influx Datenbank umzuziehen, geht das evtl. einher mit der Migration der Datenbanken? Evtl. kann ich mir so gleich einen Überblick verschaffen.

        Ich stelle hier nach der Arbeit Screenshots ein, dann kann ich es besser erklären.

        Vielen Dank für die vielen Antworten 👍

        1 Reply Last reply Reply Quote 0
        • AxelF1977
          AxelF1977 last edited by

          So sieht die ganze Geschichte aus. Bevor ich es falsch beschreibe, sagt Euch der Screenshot bestimmt mehr.

          c0fa77a9-faf1-4075-a2b1-bba5da1b3f31-image.png

          Zusammengefügt werden sollen die Datenbanken ...maticdb und ..maticdb_02. Wobei ...maticdb_02 in ...maticdb eingefügt werden soll

          Wobei wohl nur die Tabellen mit ts_ hinzugefügt werden müssen. Bei allen anderen hat sich nichts geändert. Diese haben, soweit ich es sehe, keine eindeutige id, sondern dieses ts, was wohl ein Zeitstempel ist?

          5d08a1fd-db87-4de8-98cb-3bf95f279dc3-image.png

          Was dans ganze sicherlich einfacher macht, denke ich

          1 Reply Last reply Reply Quote 0
          • D
            Daddeldu last edited by

            ts ist der UNIXTIMESTAMP, ein Wert in Sekunden seit 00:00:00 am 01.01.1970

            kannst Du hier online checken: https://www.epochconverter.com

            Solange nicht mehrere Werte innerhalb einer Sekunde in die Tabelle eingetragen werden, ist ts eindeutig.

            AxelF1977 1 Reply Last reply Reply Quote 0
            • AxelF1977
              AxelF1977 @Daddeldu last edited by

              @Daddeldu Danke, Unixtime, genau das war es.

              Habe jetzt mal eine 3. Datenbank angelegt, die Struktur der alten kopiert und fülle sie jetzt. Scheint zu finktionieren

              ALTER TABLE ...maticdb_03.ts_number DISABLE KEYS;
              INSERT INTO ...maticdb_03.ts_number SELECT * FROM ...maticdb.ts_number;
              ALTER TABLE ...maticdb_03.ts_number ENABLE KEYS;
              

              Jedenfalls gab es keinen Fehler und zu den ursprünglichen 190308147 Einträgen wurden 102398438 Einträge hinzugefügt.

              Danke Euch

              1 Reply Last reply Reply Quote 0
              • AxelF1977
                AxelF1977 last edited by AxelF1977

                Nun kommen aber die Fehler...

                sobald ich einen Zeitraum auswähle der länger zurück liegt, z.B. November 2019, bekomme ich einen #1040 - Too many connections Fehler und komme erst weider in phpMyAdmin rein, wenn ich die mysql Instanz stoppe.

                1 Reply Last reply Reply Quote 0
                • D
                  Daddeldu last edited by Daddeldu

                  Google findet Treffer ohne Ende zu dem Fehler...

                  https://stackoverflow.com/questions/730953/how-to-fix-mysql-connect-too-many-connections

                  oder auch

                  https://minervadb.com/index.php/2020/02/03/how-mysql-handles-connection-troubleshooting-mysql-error-1040-too-many-connections/

                  Hängt wahrscheinlich mit der Checkbox“Parallelanfragen erlauben“ im Adapter zusammen. Standard sind laut der Links oben max 151 Verbindungen gleichzeitig.

                  AxelF1977 1 Reply Last reply Reply Quote 0
                  • AxelF1977
                    AxelF1977 @Daddeldu last edited by

                    @Daddeldu sagte in MYSQL Profis unter uns?:

                    Google findet Treffer ohne Ende zu dem Fehler...

                    https://stackoverflow.com/questions/730953/how-to-fix-mysql-connect-too-many-connections

                    oder auch

                    https://minervadb.com/index.php/2020/02/03/how-mysql-handles-connection-troubleshooting-mysql-error-1040-too-many-connections/

                    Hängt wahrscheinlich mit der Checkbox“Parallelanfragen erlauben“ im Adapter zusammen. Standard sind laut der Links oben max 151 Verbindungen gleichzeitig.

                    Ja, da bin ich dran mich durch Google zu kämpfen. Da gibt es so viele verschiedene Möglichkeiten.

                    Größtes Problem gerade, ich weiß das Passwort des root user nicht 🤔

                    1 Reply Last reply Reply Quote 0
                    • D
                      Daddeldu last edited by

                      Ich würde auch mal nen select count auf einen bestimmten Zeitraum machen, um zu sehen, wieviele Datensätze da kommen um den dann irgendwie sinnvoll zu begrenzen. Ob das nötig ist weiß ich zwar nicht, aber bei zig 1000 Datensätzen könnte es irgendwann eng werden.
                      Vom MySQL-Server oder vom Raspi/Tinkerboard? Kannst Du doch notfalls beides zurücksetzen.

                      AxelF1977 1 Reply Last reply Reply Quote 0
                      • AxelF1977
                        AxelF1977 @Daddeldu last edited by AxelF1977

                        @Daddeldu sagte in MYSQL Profis unter uns?:

                        Ich würde auch mal nen select count auf einen bestimmten Zeitraum machen, um zu sehen, wieviele Datensätze da kommen um den dann irgendwie sinnvoll zu begrenzen. Ob das nötig ist weiß ich zwar nicht, aber bei zig 1000 Datensätzen könnte es irgendwann eng werden.
                        Vom MySQL-Server oder vom Raspi/Tinkerboard? Kannst Du doch notfalls beides zurücksetzen.

                        Irgendwie geht gar nichts, alles was ich im Netz finde, bewirkt entweder nichts, oder es fehlen die root Rechte, wo ich das Passwort nicht habe.

                        Die Tipps, wie ich das root Passwort von MYSQL zurück setze, funktionieren irgendwie auch alle nicht.

                        Wahrscheinlich stelle ich mich zu dumm an...

                        1 Reply Last reply Reply Quote 0
                        • D
                          Daddeldu last edited by

                          Erstmal mysql stoppen, siehe 2. hier unter diesem Link:

                          https://tableplus.com/blog/2018/10/how-to-start-stop-restart-mysql-server.html

                          danach ohne Anmeldedaten starten und Passwort zurücksetzen:

                          https://www.patrick-gotthard.de/mysql-root-passwort-zuruecksetzen

                          und zum Schluß wieder starten und mit neuem root-pow anmelden

                          1 Reply Last reply Reply Quote 0
                          • AxelF1977
                            AxelF1977 last edited by

                            Ich habe mir mal gerade die Unix Timestamps angesehen, ich denke hier liegt das Problem

                            1539144518784: Realzeit: 20.07.50743 - 17:06:24

                            Kann der Fehler daher kommen? Ich habe jetzt mal 20 Werte wild aus der alten DB probiert, von der ersten bis zur letzten Seite, die sind alle Murks

                            1 Reply Last reply Reply Quote 0
                            • D
                              Daddeldu last edited by Daddeldu

                              Dieser Zeitstempel ist vom 10. Oktober 2018 und beinhaltet Millisekunden.

                              1539144518784 Wobei die 784 die Millisekunden sind. Laß die 3 Stellen weg und teste nur die 1539144518 dann siehst Du es.

                              Die alte DB beinhaltet wahrscheinlich Millisekunden im Zeitstempel, die aktuelle nicht. Ob dem so ist und die Werte plausibel sind, kannst nur Du checken. Beide Datenbanken einfach nur mergen dürfte damit sinnlos sein. Für jedes Datum müsste der Zeitstempel beim Kopieren entsprechend manipuliert werden, so daß beide dieselbe Zeitbasis haben.

                              Wenn Du beim SQL-Statement die einzelnen Spalten anstelle von * angibst, kannst Du bei den VALUES dann z.B. ts/1000 als Zeitstempel einfügen.
                              Das Prinzip ist im Link unten beschrieben, alternativ in der alten DB erstmal den Zeitstempel mit ts/1000 updaten und dann 1:1 mergen.

                              https://www.w3resource.com/sql/update-statement/update-columns-using-arithmetical-expression.php

                              AxelF1977 1 Reply Last reply Reply Quote 0
                              • AxelF1977
                                AxelF1977 @Daddeldu last edited by

                                @Daddeldu sagte in MYSQL Profis unter uns?:

                                Dieser Zeitstempel ist vom 10. Oktober 2018 und beinhaltet Millisekunden.

                                1539144518784 Wobei die 784 die Millisekunden sind. Laß die 3 Stellen weg und teste nur die 1539144518 dann siehst Du es.

                                Die alte DB beinhaltet wahrscheinlich Millisekunden im Zeitstempel, die aktuelle nicht. Ob dem so ist und die Werte plausibel sind, kannst nur Du checken. Beide Datenbanken einfach nur mergen dürfte damit sinnlos sein. Für jedes Datum müsste der Zeitstempel beim Kopieren entsprechend manipuliert werden, so daß beide dieselbe Zeitbasis haben.

                                Wenn Du beim SQL-Statement die einzelnen Spalten anstelle von * angibst, kannst Du bei den VALUES dann z.B. ts/1000 als Zeitstempel einfügen.
                                Das Prinzip ist im Link unten beschrieben, alternativ in der alten DB erstmal den Zeitstempel mit ts/1000 updaten und dann 1:1 mergen.

                                https://www.w3resource.com/sql/update-statement/update-columns-using-arithmetical-expression.php

                                Vielen Dank. Das werde ich morgen mal in Ruhe probieren.

                                Ich sag dann bescheid.

                                1 Reply Last reply Reply Quote 0
                                • AxelF1977
                                  AxelF1977 last edited by AxelF1977

                                  Ich hab gefunden was die Probleme verursacht, was mich veranlasst das Projekt "Datenbank zusammenführung" sein zu lassen.

                                  Die Datenpunkte sind in der neuen und der alten Tabelle vollkommen unterschiedlich. Das bekomme ich nicht auseinander. Die selben Datenpunkte haben verschiedene id´s, und in der neuen Tabelle sind es sogar mehr.

                                  Daher danke für Eure Hilfe, aber ich habe jetzt die Diagramme mit den alten Daten erstellt die ich brauchte, nun lasse ich die alten Daten verloren, und gut ist

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mguenther last edited by mguenther

                                    ist für dich dann damit das Thema erledigt?
                                    Ich suche und brauche nämlich auch noch dringend einen SQL-Profi bzw. zumindest einen, der mir mit der sql-Instanz weiterhelfen kann - will nur nicht deinen Thread damit "zerschießen".

                                    Mein Problem findet sich hier. Problem ist, dass mein Log-File immer größer wird und ich täglich mind. um die 1MB Größe liege. Vor ein paar Tagen hatte ich allerdings auch schon 36MB.

                                    Ich habe eine MariaDB auf einer Synology. Ich weiß nicht mehr weiter und wäre schön, wenn sich mal einer erbarmt, mir zu helfen...

                                    Danke
                                    Marcus

                                    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

                                    766
                                    Online

                                    31.6k
                                    Users

                                    79.5k
                                    Topics

                                    1.3m
                                    Posts

                                    mysql
                                    6
                                    23
                                    1331
                                    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