Autor Thema: DBLog mit MariaDB  (Gelesen 616 mal)

Offline 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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10265
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

Offline 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

Offline 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: 13418
  • 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: 13418
  • 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

Offline 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

Offline 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

Online 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
        );

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #15 am: 07 September 2017, 21:59:21 »
Hallo darkness,

was steht denn im Log beim Start von FHEM ?
Bitte kopiere mal die Zeilen raus die "DbLog" enthalten.

Darf der verwendete Nutzer sich denn von dem speziellen oder jedem Host aus anmelden ? (String "%" im Feld Hostname des Benutzerkontos in der DB)
« Letzte Änderung: 07 September 2017, 23:02:49 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 darkness

  • Full Member
  • ***
  • Beiträge: 366
Antw:DBLog mit MariaDB
« Antwort #16 am: 08 September 2017, 19:14:27 »
Hallo DS_Starter,


fhemuser darf sich nur mir localhost anmelden.

hilft dir das weiter?

2017.09.08 19:11:02 3: DbLog logdb: Creating Push-Handle to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2017.09.08 19:11:02 4: DbLog $name: Trying to connect to database
2017.09.08 19:11:02 4: DbLog logdb -> ################################################################
2017.09.08 19:11:02 4: DbLog logdb -> ###              start of new Logcycle                       ###
2017.09.08 19:11:02 4: DbLog logdb -> ################################################################
2017.09.08 19:11:02 4: DbLog logdb -> amount of events received: 1 for device: logdb
2017.09.08 19:11:02 4: DbLog logdb -> check Device: logdb , Event: state: disconnected
2017.09.08 19:11:02 4: DbLog logdb -> added event - Timestamp: 2017-09-08 19:11:02, Device: logdb, Type: DBLOG, Event: state: disconnected, Reading: state, Value: disconnected, Unit:
2017.09.08 19:11:02 4: Waiting for database connection
2017.09.08 19:11:02 4: DbLog logdb -> ################################################################
2017.09.08 19:11:02 4: DbLog logdb -> ###              start of new Logcycle                       ###
2017.09.08 19:11:02 4: DbLog logdb -> ################################################################
2017.09.08 19:11:02 4: DbLog logdb -> amount of events received: 1 for device: stat_utg
2017.09.08 19:11:02 4: DbLog logdb -> check Device: stat_utg , Event: state: Updated stats for: kueche.utg
2017.09.08 19:11:02 4: DbLog logdb -> added event - Timestamp: 2017-09-08 19:11:02, Device: stat_utg, Type: STATISTICS, Event: state: Updated stats for: kueche.utg, Reading: state, Value: Updated stats for, Unit: kueche.utg
2017.09.08 19:11:02 4: DbLog logdb -> ################################################################
2017.09.08 19:11:02 4: DbLog logdb -> ###              start of new Logcycle                       ###
2017.09.08 19:11:02 4: DbLog logdb -> ################################################################
2017.09.08 19:11:02 4: DbLog logdb -> amount of events received: 1 for device: logdb
2017.09.08 19:11:02 4: DbLog logdb -> check Device: logdb , Event: state: Can't connect to database.
2017.09.08 19:11:02 4: DbLog logdb -> added event - Timestamp: 2017-09-08 19:11:02, Device: logdb, Type: DBLOG, Event: state: Can't connect to database., Reading: state, Value: Can't connect to database., Unit:

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #17 am: 08 September 2017, 20:53:06 »
Zitat
fhemuser darf sich nur mir localhost anmelden.
Jetzt habe ich natürlich ganz vergessen zu fragen wo die DB läuft. Also mit auf dem RPi oder läuft die DB und FHEM getrennt.

Wenn es getrennt läuft, müsste der fhemuser die Berechtigung bekommen sich von dem FHEM-Host aus anzumelden (im einfachsten Fall "%").

Den Zugriff kannst du vom RPi aus testen mit

mysql -u fhemuser -p -h <IP des DB-Host>
Schau auch mal ob auf dem RPi die Client-Software installiert ist:

sudo apt-get install mysql-client
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

Online darkness

  • Full Member
  • ***
  • Beiträge: 366
Antw:DBLog mit MariaDB
« Antwort #18 am: 08 September 2017, 21:15:22 »
Mariadb läuft lokal.
Login per Konsole mit Fhemuser funktioniert.


Kurze Antwort per Handy

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1624
Antw:DBLog mit MariaDB
« Antwort #19 am: 08 September 2017, 21:48:33 »
Kann mir momentan schlecht vorstellen was hier das Problem sein könnte.
DbLog kann das Konfigfile lesen, sonst kämen schon Fehlerhinweise beim FHEM-Start. Sicherheitshalber kannst du das Konfigfile nochmal neu erstellen (ohne Cut & Paste).
Statt localhost kannst du mal die (eigene) IP-Adresse angeben und schauen wie es dann aussieht.

Ansonsten wären eventuell noch Fehlerhinweise in der MySQL Logdatei zu finden. Sie sollte hier zu finden sein:

Zitat
The error log is active by default. The log-error=filename option determines where the output will be written. If no file name is specified, the log will be written to host-name.err. If no absolute path is specified, the file will be written to the data directory (determined by the value of the datadir system variable).
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 darkness

  • Full Member
  • ***
  • Beiträge: 366
Antw:DBLog mit MariaDB
« Antwort #20 am: 08 September 2017, 22:16:22 »
Habe gerade die Datenbank und den User neu angelegt. Jetzt läuft es  :o
Die db.conf hatte ich vom alten Rechner mit umgezogen, die Datenbank als Dump eingespielt.

Naja, jetzt scheint es zu laufen. Vielen Dank für die Hilfe!

Gruß

 

decade-submarginal