Ankündigung

Einklappen
Keine Ankündigung bisher.

MYSQL Persist funktioniert nicht mehr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    MYSQL Persist funktioniert nicht mehr

    Hi,

    seit einigen Tagen funktioniert mein MySQL Persist in Verbindung mit openHAB2 nicht mehr!

    In der Log-Datei finde ich folgenden Fehlereintrag:

    Code:
    2018-12-26 20:11:26.894 [ERROR] [sql.internal.MysqlPersistenceService] - mySQL: Failed connecting to the SQL database using: driverClass=com.mysql.jdbc.Driver, url=jdbc:mysql://192.168.1.120:3306/OpenHab, user=<privat>, password=<privat>
    java.sql.SQLException: null,  message from server: "Host 'JmDNS-IP-2.fritz.box' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1112) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2486) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) [220:org.openhab.persistence.mysql:1.12.0]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [?:?]
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:?]
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [?:?]
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416) [220:org.openhab.persistence.mysql:1.12.0]
            at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346) [220:org.openhab.persistence.mysql:1.12.0]
            at java.sql.DriverManager.getConnection(DriverManager.java:664) [?:?]
            at java.sql.DriverManager.getConnection(DriverManager.java:247) [?:?]
            at org.openhab.persistence.mysql.internal.MysqlPersistenceService.connectToDatabase(MysqlPersistenceService.java:521) [220:org.openhab.persistence.mysql:1.12.0]
            at org.openhab.persistence.mysql.internal.MysqlPersistenceService.activate(MysqlPersistenceService.java:191) [220:org.openhab.persistence.mysql:1.12.0]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
            at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:229) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:650) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:506) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:307) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:299) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:298) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) [39:org.apache.felix.scr:2.0.12]
            at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) [39:org.apache.felix.scr:2.0.12]
            at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
            at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
            at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
            at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
            at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
            at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
            at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
            at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
            at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) [15:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
            at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [?:?]
            at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [?:?]
            at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
            at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
            at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901) [?:?]
            at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [?:?]
    Woran kann es liegen?

    Gruß
    mepi0011

    #2
    Steht doch schon da, mitsamt Lösungsvorschlag:
    Code:
    message from server: "Host 'JmDNS-IP-2.fritz.box' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
    Du musst Dich also auf dme Rechner, auf dem mysql läuft, auf ide Kommandozeile begeben und dort den Befehl
    Code:
    mysqladmin flush-hosts
    ausführen.
    Es könnte sein, dass Du einen passenden Login angeben musst, also den User der sämtliche Rechte am Datenbankserver besitzt. Dann lautet der Befehl vermutlich so:
    Code:
    mysqladmin -p -u root flush-hosts

    Kommentar


      #3
      Hallo udo1toni , vielen Dank für die Rückmeldung.

      In der Zwischenzeit habe ich den Befehl
      Code:
      mysqladmin -p -u root flush-hosts
      auf meinem NAS ausgeführt. Ob und was dieser Befehl bewirkt hat, kann ich nicht sagen, da beim Ausführen weder ein Fehler oder Ausgabe ausgegeben wurde.
      OIpenHAB hat aber weiterhin die Fehlermeldung ausgegeben.

      Meine SQL Datenbank läuft auf einem NAS der Firma Qnap. OpenHab verwendet MySQL als Standard Persistence und schreibt viele Daten in die Datenbank bzw. stellt diese bei einen Neustart wieder her. Das ganze hat bis vor ein paar Tagen problemlos funktioniert (openHAB schreibt seit 4 Jahren in die Datenbank).

      Zum Test habe ich gestern das MySQL Persistence deinstalliert und das JDBC Persistence eingerichtet. Fehlermeldungen habe ich keine erhalten, allerdings wurde auch nichts in die Datenbank geschrieben. Habe heute Morgen weitere Einstellungen vorgenommen ggf. kann ich morgen Erfolg berichten!

      Gruß
      mepi0011

      Kommentar


        #4
        Das Problem von oben lag an einer fehlerhaften SD Karte meines Raspberry Pi. Ich habe das System nun komplett neu eingerichtet, allerdings erhalte ich nun folgende Fehlermeldung:

        Code:
        2019-01-03 17:06:07.549 [ERROR] [sql.internal.MysqlPersistenceService] - mySQL: Failed connecting to the SQL database using: driverClass=com.mysql.jdbc.Driver, url=jdbc:mysql://192.168.128.120:3306/OpenHab, user=openHAB
        java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
                at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:79) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) ~[212:org.openhab.persistence.mysql:1.13.0]
                at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207) ~[212:org.openhab.persistence.mysql:1.13.0]
                at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:?]
                at java.sql.DriverManager.getConnection(DriverManager.java:247) ~[?:?]
                at org.openhab.persistence.mysql.internal.MysqlPersistenceService.connectToDatabase(MysqlPersistenceService.java:521) [212:org.openhab.persistence.mysql:1.13.0]
                at org.openhab.persistence.mysql.internal.MysqlPersistenceService.activate(MysqlPersistenceService.java:191) [212:org.openhab.persistence.mysql:1.13.0]
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
                at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
                at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:317) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:307) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:334) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:114) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:947) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:919) [39:org.apache.felix.scr:2.1.2]
                at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:863) [39:org.apache.felix.scr:2.1.2]
                at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
                at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
                at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
                at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
                at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
                at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
                at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
                at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
                at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) [20:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
                at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [?:?]
                at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [?:?]
                at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
        Wenn ich es richtig interpretiere, liegt der Fehler am MySQL-connector, siehe hier!

        Zudem habe ich auf meinem NAS ein schon etwas betagte MySQL Version (V 5.1.73), ggf. macht diese auch Probleme.

        Wer hat eine Idee wie ich das beheben kann?

        Gruß
        Pierre


        Kommentar


          #5
          Hallo ich habe seid gestern auch ein Problem mit dem dem Mysqlzugriff.

          Hier die Fehlermeldung
          Code:
                 2019-05-21 14:46:00.853 [COLOR=red][ERROR][/COLOR] [sql.internal.MysqlPersistenceService] - mySQL: Failed connecting to the SQL database using: driverClass=com.mysql.jdbc.Driver, url=jdbc:mysql://192.168.xxx.xx:3306/openhabv2, user=xxxxxx
           
          java.sql.SQLException: The server time zone value 'CEST' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
          Die Server habe ich überprüft sie stehen beide auf CEST.

          Hat jemand eine Idee?
          Gruß

          Guido

          Kommentar


            #6
            Ich habe eine Lösung gefunden.

            Anstatt
            HTML-Code:
             url=jdbc:mysql://192.168.xxx.xxx:3306/openhabvdb
            ruft man die die Datenbank in der mysql.cfg so auf

            HTML-Code:
             url=jdbc:mysql://192.168.xxx.xxx:3306/openhabdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=CET
             
            Zuletzt geändert von Höhlenbär; 12.06.2019, 20:01.
            Gruß

            Guido

            Kommentar

            Lädt...
            X