Lösungsansatz: DbLog: Failed to insert new readings into database

Begonnen von fhemreader, 20 Oktober 2015, 00:05:56

Vorheriges Thema - Nächstes Thema

fhemreader

Hallo,

da hier viele Fragen (und wenig Anworten) zum DBLog-Modul und der Fehlermeldung



DbLog: Failed to insert new readings into database: DBD::SQLite::st execute failed: attempt to execute on inactive database handle at ./FHEM/93_DbLog.pm line


hier mal meine bisherigen Erkenntnisse (falls die schon im Forum existieren und ich nicht gut genug gesucht habe - bitte löschen): 

ich habe sqlite als DB benutzt und die DB wie in vielen Tutorials in /opt/fhem (auf dem raspi) installiert.
Schreibzugriff für den User fhem auf die DB war gegeben. Zugriff für /opt/fhem war für den User fhem auf read+execute -> DAS REICHT NICHT!

Hintergrund: in 93_DbLog.pm wird für SQLite das Pragma Statement "journal_mode" auf "WAL" gesetzt. Das bedeutet aber, das in demselben
Verzeichnis wie die DB durch den User fhem versucht wird die Dateien

"database.db-shm" und  "database.db.wal"

zu erstellen.

Wenn dies fehlschlägt, bekommt man diese Fehlermeldungen.

Also die DB in ein Verzeichnis mit den entsprechenden Berechtigungen verschieben oder aber /opt/fhem für den User fhem beschreibbar machen
(aus Security-Sicht keine so gute Idee!)


Frosch

Hallo,

ich habe jenes von dir beschriebene Problem und habe testweise die Berechtigungen angepasst:

/opt $ ls -l
drwxrwxrwx 14 fhem dialout 4096 Jan 23 22:28 fhem

Gut, ich hab mit der Rechtevergabe vielleicht etwas übertrieben. Der Punkt ist jedoch, dass ich immernoch die von dir beschriebene Fehlermeldung erhalte.
Was habe ich übersehen?