Hauptmenü

DBLog mit MariaDB

Begonnen von okiberlin, 19 Juli 2017, 14:47:37

Vorheriges Thema - Nächstes Thema

okiberlin

Hallo

Ich versuche auf einer Debian 8 VM FHEM mit DbLog ans Laufen zu bekommen. Leider ohne Erfolg.

db.conf

%dbconfig= (
        connection => "mysql:database=fhem;host=127.0.0.1;port=3306",
        user => "fhemuser",
        password => "xxxxx",
        # optional enable(1) / disable(0) UTF-8 support (at least V 4.042 is necessary)
        utf8 => 1,
    );


fhem.cfg

define myDbLog DbLog /opt/fhem/db.conf .*:.*


my.cnf

# MariaDB database server configuration file.
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc_messages_dir = /usr/share/mysql
lc_messages     = en_US
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1


mysql -u fhemuser -p

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 22
Server version: 10.1.25-MariaDB-1~jessie mariadb.org binary distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| fhem               |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)


Die Datenbank läuft! Aber FHEM stürzt ab.  >:(

fhem.log

2017.07.19 11:00:29 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/93_DbLog.pm line 2085.
2017.07.19 11:00:29 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/93_DbLog.pm line 2087.
2017.07.19 11:00:29 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/93_DbLog.pm line 2089.
2017.07.19 11:00:29 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/93_DbLog.pm line 2091.
2017.07.19 11:00:29 3: Unknown dbmodel type in configuration file /opt/fhem/db.conf.
2017.07.19 11:00:29 3: Only Mysql, Postgresql, Oracle, SQLite are fully supported.
2017.07.19 11:00:29 3: It may cause SQL-Erros during generating plots.
2017.07.19 11:00:29 1: PERL WARNING: Use of uninitialized value $dbconn in concatenation (.) or string at ./FHEM/93_DbLog.pm line 2116.
2017.07.19 11:00:29 1: PERL WARNING: Use of uninitialized value $dbuser in concatenation (.) or string at ./FHEM/93_DbLog.pm line 2116.
2017.07.19 11:00:29 3: DbLog myDbLog: Creating Push-Handle to database  with user
2017.07.19 11:00:29 1: PERL WARNING: Use of uninitialized value $dbconn in concatenation (.) or string at ./FHEM/93_DbLog.pm line 2117.
Can't connect to data source 'dbi:' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not $


Dann habe ich eine Environment Variable gesetzt.

DBI_DRIVER="mysql"; export DBI_DRIVER

fhem.log

2017.07.19 13:36:03 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/93_DbLog.pm line 413.
2017.07.19 13:36:06 3: DbLog myDbLog: Creating Push-Handle to database  with user
2017.07.19 13:36:06 1: PERL WARNING: Use of uninitialized value $dbconn in concatenation (.) or string at ./FHEM/93_DbLog.pm line 2154.
2017.07.19 13:36:11 3: DbLog myDbLog: Creating Push-Handle to database  with user
2017.07.19 13:36:16 3: DbLog myDbLog: Creating Push-Handle to database  with user


Can't connect to database  :(

Was kann das sein? Sollte ich es lieber mit SQLite machen? Oder wäre das spürbar langsamer?

Viele Grüße
Olaf

DS_Starter

Hallo Olaf,

Vorab, DbLog läuft einwandfrei mit MariaDB. Siehe meine Signatur.
Jetzt ist es gerade schlecht, aber heute Abend können wir mal die Konfiguration vergleichen.

VG
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

CoolTux

utf8 => 1,

Mach Mal bitte das Komma hinten weg. Denke zwar nicht wirklich das es das ist aber wer weiß.

Zweite Frage. Die perlibs für MySQL hast du installiert?
libdbd-mysql-perl
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

okiberlin

Das Komma war es schon mal nicht. Wäre ja zu einfach.

Das Log schreibt unverändert:
2017.07.19 16:18:26 3: DbLog myDbLog: Creating Push-Handle to database  with user

libdbd-mysql-perl ist schon die neueste Version, sagt "apt-get install libdbd-mysql-perl"

DS_Starter

#4
Kommt mir so vor als könnte die DB.conf nicht gelesen werden. Lage und vor allem Rechte OK ?

Edit: schreib im Def nur ./db.conf
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

okiberlin

Die def Änderung hat es auch nicht gebracht.


ls /opt/fhem -la
insgesamt 464
drwxr-xr-x 10 fhem dialout   4096 Jul 19 10:49 .
drwxr-xr-x  3 root root      4096 Jul  3 16:55 ..
-rw-r--r--  1 fhem dialout 204377 Jul 19 09:44 CHANGED
-rw-r--r--  1 fhem dialout  36715 Jul 19 09:44 configDB.pm
drwxr-xr-x 42 fhem dialout  12288 Jul  3 16:56 contrib
-rw-r--r--  1 fhem dialout    245 Jul 19 16:17 db.conf
drwxr-xr-x  3 fhem dialout   4096 Jul  3 16:56 demolog
drwxr-xr-x  4 fhem dialout   4096 Jul  3 16:56 docs
drwxr-xr-x  5 fhem dialout  24576 Jul 14 08:42 FHEM
-rw-r--r--  1 fhem dialout   1303 Jul 19 12:52 fhem.cfg
-rw-r--r--  1 fhem dialout  15703 Jul  3 07:56 fhem.cfg.demo
-rwxr-xr-x  1 fhem dialout 134636 Jul 10 20:01 fhem.pl
drwxr-xr-x  2 fhem dialout   4096 Jul 10 20:01 log
-rw-r--r--  1 fhem dialout    935 Jul  3 07:56 README_DEMO.txt
drwxr-xr-x  5 fhem dialout   4096 Jul 19 09:44 restoreDir
drwxr-xr-x  2 fhem dialout   4096 Jul 10 20:01 unused
drwxr-xr-x  8 fhem dialout   4096 Jul  3 16:56 www

betateilchen


  • mit welchem Editor hast Du die db.conf erstellt?
  • hast Du am Ende der db.conf einen (notwendigen) Zeilenbruch eingefügt?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Habe eine V2.21.2 angehängt. Die Version bringt beim Start etwas mehr Infos wenn es beim Lesen der db.conf Probleme gibt.
Vielleicht hilfts etwas weiter.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

betateilchen

Das Problem dürfte ja hauptsächlich nach diesen beiden Hinweise zu suchen sein:

Zitat
2017.07.19 11:00:29 3: Unknown dbmodel type in configuration file /opt/fhem/db.conf.
2017.07.19 11:00:29 3: Only Mysql, Postgresql, Oracle, SQLite are fully supported.

Can't connect to data source 'dbi:' because I can't work out what driver to use
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Sehe ich auch so. Ich versuche Fehler auszugeben wenn die Keys Connection, User, Password nicht geladen werden können. Mal schauen ob es hilft.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

okiberlin

Mit der V2.21.2 bekomme ich
DbLog myDbLog - Error while reading ./db.conf: 'could not read connection'

Ich hatte noch DbLog verbose 5 gesetzt, macht aber keinen Unterschied

DS_Starter

#11
Das bedeutet das File als solches kann geöffnet werden, aber bereits der erste Eintrag wird nicht erkannt.
Wie betateilchen schon vermutete bin ich auch der Meinung dass es im File eventuell Steuerzeichen gibt die man nicht sieht. Erstelle dir mal ein neues File am Besten mit vi ohne Copy and Paste.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

okiberlin

Es war tatsächlich ein unsichtbarer Copy&Paste Fehler. Einfach alles per Hand eingetippt und es läuft. Jetzt kann es weiter gehen :-)

Vielen Dank euch allen!

DS_Starter

Prima  :). Die Version übernehme ich ins SVN, scheint hilfreich zu sein.

LG
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

darkness

Hallo,

ich hänge mich mal hier dran.

Bekomme dblog auch nicht mehr zum laufen (nach umzug auf Pi3).

libdbd-mysql-perl ist installiert. Lokaler Login als fhemuser klappt.

fhemlog sagt

2017.09.07 16:08:20 4: DbLog logdb -> check Device: logdb , Event: state: Can't connect to database.
2017.09.07 16:08:20 4: DbLog logdb -> added event - Timestamp: 2017-09-07 16:08:20, Device: logdb, Type: DBLOG, Event: state: Can't connect to database., Reading: state, Value: Can't connect to database., Unit:
2017.09.07 16:08:20 5: DbLog logdb -> DbLog_Push Returncode: Can't connect to database


List vom dblog

Internals:
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION ./db.conf
   DEF        ./db.conf .*:.*
   MODE       synchronous
   MODEL      MYSQL
   NAME       logdb
   NR         525
   NTFY_ORDER 50-logdb
   PID        1394
   REGEXP     .*:.*
   STATE      Can't connect to database.
   TYPE       DbLog
   UTF8       1
   VERSION    2.22.5
   dbconn     mysql:database=fhem;host=localhost;port=3306
   dbuser     fhemuser
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     READINGCOL 64
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1504800578.04837
           VALUE      disconnected
   READINGS:
     2017-09-07 15:13:03   countCurrent
     2017-09-07 15:13:03   countHistory
     2017-09-07 15:13:03   reduceLogState
     2017-09-07 16:09:38   state           Can't connect to database.
   cache:
     index      0
Attributes:
   verbose    5



db.conf mit Zeilenumbruch am Ende
## for MySQL
%dbconfig= (
        connection => "mysql:database=fhem;host=localhost;port=3306",
        user => "fhemuser",
        password => "ABC",
        # optional enable(1) / disable(0) UTF-8 support (at least V 4.042 is necessary)
        utf8 => 1
        );