MYSQL nichht mehr nutzbar

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

holger237
Beiträge: 19
Registriert: 1. Dez 2019 23:58
Answers: 0

MYSQL nichht mehr nutzbar

Beitrag von holger237 »

Hallo zusammen,

seit mehreren Monaten nutze ich problemlos mySQL und RRD4J als Persistence. Seit einigen Tage möchte openhab einfach nicht mehr mit MySQL zusammen arbeiten.

Konfiguration:
- Openhab 2.5.0 über Docker
- Java 8 (1.8.0_251)
- MariaDB 10
- phpMyAdmin
- MySQL Pesistence 1.14.0 über PaperUI

Folgendes habe ich bereits erfolglos versucht:
- Update Openhab auf 2.5.3 stable
- Java 8 de- und neu installiert
- Datenbank gelöscht und neu erstellt
- MariaDB 10 de- und neu installiert
- MariaDB 10 durch MariaDB 5 ersetzt
- MySQL Pesistence 1.14.0 durch 1.15.0 ersetzt

Code: Alles auswählen

# the database url like 'jdbc:mysql://<host>:<port>/<database>' (without quotes)
url=jdbc:mysql://192.168.0.187:3307/Holger

# the database user
user=Holger

# the database password
password=******

# the reconnection counter
#reconnectCnt=

# the connection timeout (in seconds)
waitTimeout= 28800

# Use MySQL Server time to store item values (=false) or use openHAB Server time (=true).
# For new installations, its recommend to set "localtime=true".
# (optional, defaults to false)
# localtime=true

Code: Alles auswählen

2020-04-19 12:11:41.299 [ERROR] [org.openhab.persistence.mysql       ] - bundle org.openhab.persistence.mysql:1.14.0 (299)[org.openhab.persistence.mysql(324)] : The activate method has thrown an exception
java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) previously initiated loading for a different type with name "com/mysql/cj/exceptions/ExceptionInterceptor"
	at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_232]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756) ~[?:1.8.0_232]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:276) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:655) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:578) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:446) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[org.eclipse.osgi-3.12.100.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:399) ~[?:?]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) ~[?:?]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207) ~[?:?]
	at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_232]
	at java.sql.DriverManager.getConnection(DriverManager.java:247) ~[?:1.8.0_232]
	at org.openhab.persistence.mysql.internal.MysqlPersistenceService.connectToDatabase(MysqlPersistenceService.java:525) ~[?:?]
	at org.openhab.persistence.mysql.internal.MysqlPersistenceService.activate(MysqlPersistenceService.java:195) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_232]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_232]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:317) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:307) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:340) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:114) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:982) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:955) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:900) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) ~[org.eclipse.osgi-3.12.100.jar:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_232]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) ~[org.eclipse.osgi-3.12.100.jar:?]
	at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) ~[?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) ~[osgi.core-6.0.0.jar:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) ~[osgi.core-6.0.0.jar:?]
	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) ~[osgi.core-6.0.0.jar:?]
	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) ~[osgi.core-6.0.0.jar:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901) ~[osgi.core-6.0.0.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) ~[?:?]
	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432) ~[?:?]
	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665) ~[?:?]
	at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:338) ~[?:?]
	at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:382) ~[?:?]
	at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) ~[?:?]
	at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:264) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) ~[?:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) ~[osgi.core-6.0.0.jar:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) ~[osgi.core-6.0.0.jar:?]
	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) ~[osgi.core-6.0.0.jar:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) ~[osgi.core-6.0.0.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.container.Module.start(Module.java:467) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:165) ~[?:?]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1153) ~[?:?]
	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1036) ~[?:?]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1062) ~[?:?]
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:998) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_232]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_232]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_232]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]
Mittlerweile ist alles "nackt". Auch ohne mysql.cfg. Aber sogar so erhalte ich beim Installieren von MySQL Pesistence den Fehler im log-file: "The activate method has thrown an exception".
Jetzt weiss ich nicht mehr, was ich noch versuchen könnte. Jemand eine idee?

Danke
Holger

holger237
Beiträge: 19
Registriert: 1. Dez 2019 23:58
Answers: 0

Re: MYSQL nichht mehr nutzbar

Beitrag von holger237 »

keiner ne idee?

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: MYSQL nichht mehr nutzbar

Beitrag von EmptySoft »

Kannst Du auf die MySQL via Shell zugreifen?

Shell aufmachen
mysql -u (dein MySQL User) -p
dann fragt er Dich nach dem Passwort
BYe
Harald

holger237
Beiträge: 19
Registriert: 1. Dez 2019 23:58
Answers: 0

Re: MYSQL nichht mehr nutzbar

Beitrag von holger237 »

wenn ich das eingebe erhalte ich "command not found"

Benutzeravatar
udo1toni
Beiträge: 15264
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: MYSQL nichht mehr nutzbar

Beitrag von udo1toni »

So wie Du vorgegangen bist, ist es vermutlich das Beste, das System neu aufzusetzen.

Nur so für die Zukunft: Wenn etwas funktioniert hat, aber ohne erkennbaren Grund (d.h. ohne dass man an der Konfiguration etwas geändert hat). plötzlich nicht mehr funktioniert, ist es nicht zielführend, wild alle möglichen Komponenten gegen andere auszutauschen, ob sie nun etwas damit zu tun haben können oder nicht.

Bezogen auf das konkrete Problem: Wenn der Zugriff auf die Datenbank von openHAB aus nicht funktioniert, man aber phpMyAdmin auf dem System hat, wäre der erste Schritt, zu prüfen, ob der Zugriff darüber weiterhin möglich ist.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

holger237
Beiträge: 19
Registriert: 1. Dez 2019 23:58
Answers: 0

Re: MYSQL nichht mehr nutzbar

Beitrag von holger237 »

Über phpMyAdmin kann ich auf die Datenbank problemlos zugreifen.

Was ist jetzt mit "System neu aufsetzen" gemeint. Openhab oder weiter?

Benutzeravatar
udo1toni
Beiträge: 15264
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: MYSQL nichht mehr nutzbar

Beitrag von udo1toni »

Na alles komplett.

Die Konfiguration von openHAB kannst Du problemlos sichern, also Sitemaps, items, Things, rules... Wenn Du über Paper UI konfiguriert hast, musst Du natürlich auch noch die interne json Datenbank sichern. Das Einfachste ist dann per openhab-cli backup das Backup zu erstellen und Nach dem Neu Aufsetzen die Konfiguration Stück für Stück wieder einzuspielen. Da kommt es halt sehr drauf an, was Du alles im System drin hast.

Die Daten der Datenbank kannst Du vorher mit einem sqldump sichern. Aber Da geht es schon los, dass Du höllsich aufpassen musst. Wenn Du eine Übersetzungstabelle hast, die die Itemnamen in Tabellennamen übersetzt (Datentabellen heißen dann item0001 usw.) kann es nach dem Zurückspielen sein, dass die Reihenfoge der Items sich geändert hat. Da müsstest Du die Daten dann händisch in die richtigen Tabellen kopieren.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

holger237
Beiträge: 19
Registriert: 1. Dez 2019 23:58
Answers: 0

Re: MYSQL nichht mehr nutzbar

Beitrag von holger237 »

ok.
Openhab-cli backup daft mir bisher nichts. Fehlt mir den etwas, wenn ich Sitemaps, items, Things, rules und die json-db manuell sichere?
Auf die alten Daten in der Datenbank kann ich verzichten. Da fange ich sicherheitshalber bei null an, damit ich keine Probleme bekomme.
Danke

Benutzeravatar
udo1toni
Beiträge: 15264
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: MYSQL nichht mehr nutzbar

Beitrag von udo1toni »

openhab-cli ist das Kommandozeilen-Tool um verschiedene Wartungsarbeiten durchzuführen. Es wird mit openHAB mit ausgeliefert. Allerdings funktioniert es wohl nur unter Linux.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

holger237
Beiträge: 19
Registriert: 1. Dez 2019 23:58
Answers: 0

Re: MYSQL nichht mehr nutzbar

Beitrag von holger237 »

ich habe openhab, MariaDB 10 und phpMyAdmin neu aufgesetzt. Neue Datenbank und User mit phpMyAdmin erstellt.

Jedoch habe aber zunächst nicht meine Backups eingespielt, sondern zum Testen im frischen System über PaperUI MySQL-Persistence erfolgreich installiert.

Anschließend dann mysql.cfg erstellt:

Code: Alles auswählen

# the database url like 'jdbc:mysql://<host>:<port>/<database>' (without quotes)
url=jdbc:mysql://192.168.0.187:3307/openhab

# the database user
user=openhab

# the database password
password=****

# the reconnection counter
#reconnectCnt=

# the connection timeout (in seconds)
waitTimeout= 28800
Und schon erhalte ich folgenden Fehler:

Code: Alles auswählen

2020-04-23 22:37:00.213 [ERROR] [sql.internal.MysqlPersistenceService] - mySQL: Failed connecting to the SQL database using: driverClass=com.mysql.jdbc.Driver, url=jdbc:mysql://192.168.0.187:3307/openhab, user=openhab
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
Passwort, IP und Port stimmen definitiv.

Kann es vielleicht sein, dass es irgendetwas mit einer Rechtevergabe auf der Synology zu tun hat?

Antworten