JDBC MySQL Fehler OpenHab 3

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
SaschaQ
Beiträge: 202
Registriert: 2. Mär 2020 13:50
Answers: 0

JDBC MySQL Fehler OpenHab 3

Beitrag von SaschaQ »

Hallo,

ich habe seit der Umstellung auf das JDBC MySql Binding sehr häufig die folgenden Fehler im Log:

Code: Alles auswählen


==> /var/log/openhab/openhab.log <==

2021-03-04 18:30:43.557 [ERROR] [org.knowm.yank.Yank                 ] - Error in SQL query!!!

java.sql.SQLException: Table 'OpenHAB.item0208' doesn't exist Query: INSERT INTO item0208 (TIME, VALUE) VALUES( NOW(), ? ) ON DUPLICATE KEY UPDATE VALUE= ? Parameters: [PowerOff, PowerOff]

	at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392) ~[bundleFile:?]

	at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:491) ~[bundleFile:?]

	at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:457) ~[bundleFile:?]

	at org.knowm.yank.Yank.execute(Yank.java:194) [bundleFile:?]

	at org.knowm.yank.Yank.execute(Yank.java:177) [bundleFile:?]

	at org.openhab.persistence.jdbc.db.JdbcBaseDAO.doStoreItemValue(JdbcBaseDAO.java:335) [bundleFile:?]

	at org.openhab.persistence.jdbc.internal.JdbcMapper.storeItemValue(JdbcMapper.java:156) [bundleFile:?]

	at org.openhab.persistence.jdbc.internal.JdbcPersistenceService.store(JdbcPersistenceService.java:143) [bundleFile:?]

	at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152) [bundleFile:?]

	at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473) [bundleFile:?]

	at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259) [bundleFile:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

	at java.lang.Thread.run(Thread.java:834) [?:?]


==> /var/log/openhab/openhab.log <==

2021-03-04 18:30:38.508 [ERROR] [org.knowm.yank.Yank                 ] - Error in SQL query!!!

java.sql.SQLException: Table 'OpenHAB.item0207' doesn't exist Query: INSERT INTO item0207 (TIME, VALUE) VALUES( NOW(), ? ) ON DUPLICATE KEY UPDATE VALUE= ? Parameters: [fernsehen aus, fernsehen aus]

	at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392) ~[bundleFile:?]

	at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:491) ~[bundleFile:?]

	at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:457) ~[bundleFile:?]

	at org.knowm.yank.Yank.execute(Yank.java:194) [bundleFile:?]

	at org.knowm.yank.Yank.execute(Yank.java:177) [bundleFile:?]

	at org.openhab.persistence.jdbc.db.JdbcBaseDAO.doStoreItemValue(JdbcBaseDAO.java:335) [bundleFile:?]

	at org.openhab.persistence.jdbc.internal.JdbcMapper.storeItemValue(JdbcMapper.java:156) [bundleFile:?]

	at org.openhab.persistence.jdbc.internal.JdbcPersistenceService.store(JdbcPersistenceService.java:143) [bundleFile:?]

	at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152) [bundleFile:?]

	at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473) [bundleFile:?]

	at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259) [bundleFile:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

	at java.lang.Thread.run(Thread.java:834) [?:?]




Jemand eine Idee?

quinche
Beiträge: 1
Registriert: 11. Aug 2021 21:12
Answers: 0

Re: JDBC MySQL Fehler OpenHab 3

Beitrag von quinche »

Bei mir ist dasselbe Problem. Irgend eine Idee?

Michdo93
Beiträge: 54
Registriert: 6. Jul 2021 13:39
Answers: 1

Re: JDBC MySQL Fehler OpenHab 3

Beitrag von Michdo93 »

Es ist jetzt eine sehr späte Antwort... Ich bekomme auch dieselbe Fehlermeldung. Hab quasi alles noch einmal durchgecheckt. Hab die Datenbank gelöscht und neu angelegt. Der Fehler besteht dann immer noch. Interesant wäre es zu wissen, was in dieser Tabelle gespeichert werden soll. Bei mir wird sehr viel gespeichert. Heißt, dass die grundlegende Konfiguration funktionieren würde.

Sollten es String Items sein, dann kannst du dich nach dem hier richten:

https://community.openhab.org/t/jdbc-ma ... tems/39774

Ich hab jetzt einfach trotzdem geantwortet, weil bei mir dies der erste Treffer war auf meiner Fehlersuche. Dann kann man auch auf die Lösung verweisen. Bei mir waren es auch String Items. Hoffe dies hilft. Die Datenbank und die Tabellen müssen geändert werden, wie folgt:

Code: Alles auswählen

USE information_schema;

SELECT concat("ALTER DATABASE `",table_schema,
              "` CHARACTER SET = 'utf8 COLLATE = utf8_general_mysql500_ci;") as _sql
  FROM `TABLES`
 WHERE table_schema like "<db_name>"
 GROUP BY table_schema;

SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name,
              "` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;") as _sql
  FROM `TABLES`
 WHERE table_schema like "<db_name>"
 GROUP BY table_schema, table_name;
<db_name> dann einfach mit dem Datenbanknamen ersetzen. Die zweite Anweisung ändert alle Tabellen in dieser ausgewählten Datenbank, so muss man nicht jede Tabelle einzeln abändern. Daher wird dort nur der Datenbankname benötigt.

Und in der JDBC-Konfiguration dann:

Code: Alles auswählen

#sqltype.STRING        =   VARCHAR(65500)
sqltype.STRING        =   VARCHAR(65500)

Antworten