Autor Thema: DBLog mit MariaDB  (Gelesen 617 mal)

Online okiberlin

  • New Member
  • *
  • Beiträge: 32
DBLog mit MariaDB
« am: 19 Juli 2017, 14:47:37 »
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

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #1 am: 19 Juli 2017, 15:26:34 »
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 6.5 auf NUC6i5SYH mit FHEM Gastsystemen auf Debian 8 64 Bit  (Jessie) & Synology iSCSI-LUNs,
DbLog/DbRep mit MariaDB auf Synology 415+,
Homematic, IT, FS20, Cams in Synology Surveillance Station (SSCAM), CUL 433, CUL 868, HM-CFG-LAN

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10266
Antw:DBLog mit MariaDB
« Antwort #2 am: 19 Juli 2017, 15:29:11 »
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Online okiberlin

  • New Member
  • *
  • Beiträge: 32
Antw:DBLog mit MariaDB
« Antwort #3 am: 19 Juli 2017, 16:20:11 »
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"

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #4 am: 19 Juli 2017, 16:23:28 »
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
« Letzte Änderung: 19 Juli 2017, 16:27:03 von DS_Starter »
ESXi 6.5 auf NUC6i5SYH mit FHEM Gastsystemen auf Debian 8 64 Bit  (Jessie) & Synology iSCSI-LUNs,
DbLog/DbRep mit MariaDB auf Synology 415+,
Homematic, IT, FS20, Cams in Synology Surveillance Station (SSCAM), CUL 433, CUL 868, HM-CFG-LAN

Online okiberlin

  • New Member
  • *
  • Beiträge: 32
Antw:DBLog mit MariaDB
« Antwort #5 am: 19 Juli 2017, 16:33:30 »
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

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13419
  • Das "S" in "IoT" steht für "Security"
Antw:DBLog mit MariaDB
« Antwort #6 am: 19 Juli 2017, 17:16:56 »
  • mit welchem Editor hast Du die db.conf erstellt?
  • hast Du am Ende der db.conf einen (notwendigen) Zeilenbruch eingefügt?
Nächster Hamburg-Stammtisch: 15.12.2017

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #7 am: 19 Juli 2017, 19:19:26 »
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 6.5 auf NUC6i5SYH mit FHEM Gastsystemen auf Debian 8 64 Bit  (Jessie) & Synology iSCSI-LUNs,
DbLog/DbRep mit MariaDB auf Synology 415+,
Homematic, IT, FS20, Cams in Synology Surveillance Station (SSCAM), CUL 433, CUL 868, HM-CFG-LAN
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13419
  • Das "S" in "IoT" steht für "Security"
Antw:DBLog mit MariaDB
« Antwort #8 am: 19 Juli 2017, 19:37:39 »
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
Nächster Hamburg-Stammtisch: 15.12.2017

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #9 am: 19 Juli 2017, 19:46:25 »
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 6.5 auf NUC6i5SYH mit FHEM Gastsystemen auf Debian 8 64 Bit  (Jessie) & Synology iSCSI-LUNs,
DbLog/DbRep mit MariaDB auf Synology 415+,
Homematic, IT, FS20, Cams in Synology Surveillance Station (SSCAM), CUL 433, CUL 868, HM-CFG-LAN

Online okiberlin

  • New Member
  • *
  • Beiträge: 32
Antw:DBLog mit MariaDB
« Antwort #10 am: 19 Juli 2017, 20:34:28 »
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

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #11 am: 19 Juli 2017, 20:39:34 »
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.
« Letzte Änderung: 19 Juli 2017, 20:44:16 von DS_Starter »
ESXi 6.5 auf NUC6i5SYH mit FHEM Gastsystemen auf Debian 8 64 Bit  (Jessie) & Synology iSCSI-LUNs,
DbLog/DbRep mit MariaDB auf Synology 415+,
Homematic, IT, FS20, Cams in Synology Surveillance Station (SSCAM), CUL 433, CUL 868, HM-CFG-LAN

Online okiberlin

  • New Member
  • *
  • Beiträge: 32
Antw:DBLog mit MariaDB
« Antwort #12 am: 19 Juli 2017, 21:03:18 »
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!

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #13 am: 19 Juli 2017, 21:05:58 »
Prima  :). Die Version übernehme ich ins SVN, scheint hilfreich zu sein.

LG
Heiko
ESXi 6.5 auf NUC6i5SYH mit FHEM Gastsystemen auf Debian 8 64 Bit  (Jessie) & Synology iSCSI-LUNs,
DbLog/DbRep mit MariaDB auf Synology 415+,
Homematic, IT, FS20, Cams in Synology Surveillance Station (SSCAM), CUL 433, CUL 868, HM-CFG-LAN

Offline darkness

  • Full Member
  • ***
  • Beiträge: 366
Antw:DBLog mit MariaDB
« Antwort #14 am: 07 September 2017, 18:12:28 »
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
        );

 

decade-submarginal