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.
    • a200
      a200 @AxelF1977 last edited by

      @AxelF1977

      1. Daten aus einer DB in die zweite DB mit anderen Tabellennamen kopieren.

      INSERT INTO DB1.TABLE1 SELECT * FROM DB2.TABLE1;

      1. schau dir mal das hier an: https://stackoverflow.com/questions/16117306/combine-two-mysql-table-with-same-column-name
      1 Reply Last reply Reply Quote 0
      • 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

                                      869
                                      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