Hallo zusammen,
ich versuche gerade mein FHEM umzuziehen...
vorher war alles auf einem Rapsi, jetzt in container. Sprich FHEM extra und MariaDB.
Die configDB läuft weil alle Geräte da sind, aber das DBlogging noch nicht.
DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at ./FHEM/93_DbLog.pm line 3018.
frage mich warum der auf host=localhost sucht??
Mein List vom Device
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/configDB.conf
DEF /opt/fhem/configDB.conf .*:.*
FUUID 5c473504-f33f-19ae-e811-c6319f12602f8585
FVERSION 93_DbLog.pm:v4.10.2-s22246/2020-06-23
MODE asynchronous
MODEL MYSQL
NAME DBLogging
NR 57
NTFY_ORDER 50-DBLogging
PID 226
REGEXP .*:.*
STATE DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at ./FHEM/93_DbLog.pm line 3018.
TYPE DbLog
UTF8 0
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser fhemuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at ./FHEM/93_DbLog.pm line 3018.
PACKAGE main
READINGCOL 64
TC current
TH history
TYPECOL 64
UNITCOL 32
VALUECOL 128
VERSION 4.10.2
READINGS:
2020-09-01 16:08:13 CacheUsage 11
2020-09-01 16:08:13 NextSync 2020-09-01 16:09:13 or if CacheUsage 500 reached
2018-10-31 06:15:22 countCurrent 37
2018-10-31 06:15:22 countHistory 29878
2020-08-31 03:00:01 lastRowsDeleted 279
2020-08-31 03:00:02 reduceLogState reduceLogNbl finished. Rows processed: 7385, deleted: 1552, updated: 52, time: 2.00sec
2020-09-01 16:09:07 state DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at ./FHEM/93_DbLog.pm line 3018.
Attributes:
DbLogSelectionMode Include
DbLogType Current/History
asyncMode 1
cacheLimit 500
room Fhem,Log
syncInterval 60
################################################################
%dbconfig= (
connection => "mysql:database=fhem;host=10.1.1.7;port=3306",
user => "fhemuser",
password => "XXXXX",
utf8 => 1
);
################################################################
#
Jemand eine idee? oder wo ich suchen muss?
LG Patrick
passen die Berechtigungen der db config? Wenn der Container keine Leserechte hat dann versucht er vermutlich ein Default ... Komisch wenn DB-Config geht aber DB-Log nicht.
Am besten machst mal IM CONTAINER ein
su fhem
cat /opt/fhem/configDB.conf
Das sollte dir die korrekte Config anzeigen.
Ich nutze kein configDB. Ist es richtig, dass DB-Log und Config-DB die selbe Config-Datei verwenden? In deinem DB-Log nutzt du nämlich die Config von Config-DB.
Edit: alternativ zu dem Befehl oben ... in der FHEM-Commandline, ich meine die Zeile oben
{qx(cat /opt/fhem/configDB.conf)}
Ansonsten
mal alles durchstarten .. wenn du alles neu eingerichtet hast sind vielleicht noch Dateien nicht geschrieben, ... sollte nicht sein, hilft aber manchmal
Config-Check im DB-Log ausführen und schaun was da alles steht ...
Danke für den Denkanstoß...
durch den "Config-Check" und "configdb filelist" bin ich darauf gestoßen das die Dateien von FHEM auch in der SQL Datenbank sind.
also musste dort die Datei /opt/fhem/configDB.conf auch noch angepasst werden. Jetzt läuft alles.
Danke und einen schönen Abend!
gerne,
anderes Thema ... du hast eine IP als Destination eingetragen. Ist die auch als fix konfiguriert? Ich meine, hast du diese in docker-compose oder dem entsprechenden Tool auch als fix eingetragen, ansonsten könnte sich diese beim erneuten Erzeugen des Containers ändern. Dann hast irgendwann eine DB die nicht erreichbar ist und du suchst dir 'nen Wolf. Normal sind die Container unter einander auch per Hostname (= Docker-Container-name) anpingbar .... wenn du schon konfigurierst dann vielleicht gleich mit Hostname.
Die ist fix eingetragen.
Ich arbeite hier mit Proxmox. Muss mal schauen ob ich das durch einen Hostnamen ersetzen kann, Docker war mir noch zu kompliziert.
DBLog verwendet doch nicht die Config-Datei von DBConfig????
Hast Du gesehen, was Du in Deiner Config stehen hast?
dbconn mysql:database=fhem;host=localhost;port=3306
Allerdings ist es geraten, verwende beides nicht.
Zitat von: Wernieman am 02 September 2020, 19:25:36
DBLog verwendet doch nicht die Config-Datei von DBConfig????
Hm bei mir schon... ist beides in der gleichen Datenbank.
mein problem war nur zum einloggen benutzt er die /opt/fhem/configDB.conf Datei im Verzeichnis von FHEM, soweit so gut.
Nachdem er die Datenbank aber geladen hat benutzt er die /opt/fhem/configDB.conf aus der Datenbank, und die war nicht angepasst da stand noch localhost drin.