Problem mit MySql (MariaDB) ERROR 2002

Begonnen von t1me2die, 24 August 2019, 21:33:12

Vorheriges Thema - Nächstes Thema

t1me2die

Moin liebes Forum,

ich habe ein Problem mit meiner MariaDB MySql Datenbank.
Nachdem ich in FHEM gesehen habe, dass LogDB sich nicht mit der MySql Datenbank verbinden kann, wollte ich dem Problem auf die Spure gehen.


DBI connect('database=fhem;host=localhost;port=3306','admin',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111 "Verbindungsaufbau abgelehnt") at ./FHEM/93_DbLog.pm line 2857.


Nun habe ich mich per SSH verbunden.

Ein "mysql" gibt folgende Fehlermeldung

root@debian-jessie-final:~# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111 "Connection refused")


Leider bin ich nicht so bewandert, dass ich hier alleine weiter komme.
Wenn ihr noch weitere Informationen braucht, sagt mir bitte Bescheid, ich weiß nämlich nicht, was ich Euch noch posten soll.

Ich habe nun erstmal wieder Zugriff auf die DB bekommen.
Ich habe nach der Anleitung: https://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
innodb_force_recovery = 3
gesetzt.
Danach kam ich dann per
mysql
Wieder auf die DB und konnte auch in die Database "fhem" springen und mir die Tabellen "current" und "history" anzeigen lassen.
Ich habe mir erstmal einen mysqldump gezogen, wobei ich auf die Werte nicht sonderlich scharf bin.
Nun habe ich beide Tabellen per
drop table current
drop table history

gelöscht und danach wieder neu angelegt mit:

CREATE TABLE `fhem`.`history` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(64), UNIT varchar(64));
CREATE TABLE `fhem`.`current` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(64), UNIT varchar(64));

Zum Schluss habe ich noch einen Index angelegt:

CREATE INDEX Search_Idx ON `fhem`.`history` (DEVICE, READING, TIMESTAMP);


Nun habe ich die Debian Maschine per
shutdown -r now
Einmal neu gestartet und habe das "innodb_force_recovery = 3" wieder auskommentiert.
mysql konnte nun erfolgreich gestartet werden. Der Status switcht auch wieder auf connected.

Dazu das passende List von dem DbLog Device:

Internals:
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION
./db.conf
   DEF       
./db.conf .*:.*
   FUUID      5ca49ed2-f33f-5a17-e05e-79dfa9c64eae210f
   FVERSION   93_DbLog.pm:v4.3.0-s20040/2019-08-21
   MODE       asynchronous
   MODEL      MYSQL
   NAME       myDbLog
   NR         30
   NTFY_ORDER 50-myDbLog
   PID        1403
   REGEXP     .*:.*
   STATE      connected
   TYPE       DbLog
   UTF8       1
   dbconn     mysql:database=fhem;host=localhost;port=3306
   dbuser     admin
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     OLDSTATE   connected
     PACKAGE    main
     READINGCOL 64
     TC         current
     TH         history
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
     VERSION    4.3.0
   Helper:
     DBLOG:
       CacheUsage:
         myDbLog:
           TIME       1566730422.95624
           VALUE      205
       background_processing_time:
         myDbLog:
           TIME       1566730423.02079
           VALUE      0.0377
       sql_processing_time:
         myDbLog:
           TIME       1566730423.02079
           VALUE      0.0280
       state:
         myDbLog:
           TIME       1566730062.99449
           VALUE      connected
   READINGS:
     2019-08-25 12:54:07   CacheUsage      92
     2019-08-25 12:53:42   NextSync        2019-08-25 12:54:42 or if CacheUsage 25000 reached
     2019-08-25 12:53:43   background_processing_time 0.0377
     2018-08-01 08:16:31   countCurrent    0
     2018-08-01 08:16:31   countHistory    8110010
     2018-08-01 08:35:09   reduceLogState  reduceLogNbl finished. Rows processed: 0, deleted: 0, time: 35.00sec
     2019-08-25 12:53:43   sql_processing_time 0.0280
     2019-08-25 12:53:43   state           connected
   cache:
     index      1368
Attributes:
   DbLogInclude CacheUsage,background_processing_time
   DbLogType  History
   asyncMode  1
   cacheEvents 2
   cacheLimit 25000
   disable    0
   room       LogDB
   showproctime 1
   syncInterval 60


Ich wundere mich gerade etwas über die Feldlänge von "UNIT", diese ist mit 32 angegeben, wobei ich beim CREATE Table doch 64 angegeben habe.

FHEM ist aktuell (Stand 25.08.2019 - 12:30Uhr).

Gruß
Mathze

UweUwe

Hallo,
aufgrund mehrerer Stromausfälle habe ich ein Thema mit mit meinem mysql server. Mit der Beschreibung von oben kann ich das Thema leider nicht lösen:
Beim Neustart von FHEM erhalte ich folgende Fehlermeldung:
DbRep Rep.Agent - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2019.09.17 09:18:38 3: DbLog DBLogging - Creating Push-Handle to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2019.09.17 09:18:38 2: DbLog DBLogging - Error: 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 "Datei oder Verzeichnis nicht gefunden") at ./FHEM/93_DbLog.pm line 2870.

2019.09.17 09:18:38 2: DbLog DBLogging - 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 "Datei oder Verzeichnis nicht gefunden") at ./FHEM/93_DbLog.pm line 2937.

2019.09.17 09:18:38 1: PERL WARNING: Use of uninitialized value $error in concatenation (.) or string at ./FHEM/93_DbLog.pm line 1528.
2019.09.17 09:18:38 2: DbRep Rep.Agent - 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 "Datei oder Verzeichnis nicht gefunden") at ./FHEM/93_DbRep.pm line 1513.

2019.09.17 09:18:39 2: DbRep Rep.Agent - DB connect failed. Make sure credentials of database fhem are valid and database is reachable.


Im Minutentakt erhalte ich jetzt im Logfile zusätzlich:
2019.09.17 09:20:58 3: DbLog DBLogging - Creating Push-Handle to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2019.09.17 09:20:58 2: DbLog DBLogging - Error: 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 "Datei oder Verzeichnis nicht gefunden") at ./FHEM/93_DbLog.pm line 2870.

2019.09.17 09:21:00 2: DbLog DBLogging - 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 "Datei oder Verzeichnis nicht gefunden") at ./FHEM/93_DbLog.pm line 2937.

2019.09.17 09:21:03 3: DbLog DBLogging - Creating Push-Handle to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2019.09.17 09:21:03 2: DbLog DBLogging - Error: 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 "Datei oder Verzeichnis nicht gefunden") at ./FHEM/93_DbLog.pm line 2870.


Mit Heidisql kann ich auf die SQL Datenbank nicht zugreifen.
Ich erhalte dann :
Cannot connect to mysql server (10061)

mit ssh und dem Befehl mysql erhalte ich :
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

Ich scheitere in der obrigen Beschreibungan dem Hinweis:
innodb_force_recovery = 3

Vielen Dank für die Hilfe


Ich würde auf den Inhalt der Datenbank grundsätzlich verzichten, wenn ich nur ab jetzt die Daten wieder bekomme.




Wernieman

1. Läuft überhaupt mysql bei Dir?
ps aux | grep [m]ysql

2. Was sagen die Logfiles?
- /var/log/syslog
- /var/log/mysql/error.log
- .....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

UweUwe

Hallo,
hab heute den gesamten Tag damit verbracht, das System aus LINUX/FHEM backups neu aufzusetzen. Scheine jetzt auf dem Stand vor dem Stromausfall zu sein.
Danke für die Unterstützung. Falls der Fehler weiterhin auftritt, so werde ich mich melden.
Danke

maci

Und richte bitte bitte ein Backup von der Datenbank ein.

Ich hatte diesen Fehler auch einmal. Datenbank gelöscht, aus Datensicherung eingespielt, aller war ok.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

UweUwe

Kannst du mir einen Hinweis geben, wo ich die automatisierte Einrichtung eines Backups für die Datenbank nachlesen kann.
Vielen Dank

DS_Starter

#6
ZitatKannst du mir einen Hinweis geben, wo ich die automatisierte Einrichtung eines Backups für die Datenbank nachlesen kann.

Wenn du es mit FHEM-Mitteln machen möchtest:

set <DbRep-Device> dumpMySQL serverSide

oder

set <DbRep-Device> dumpMySQL clientSide

Es gibt dafür etliche Zusatzfunktionen wie Versionierung der Backupfiles, FTP-Transfer und Komprimierung.
Für SQLIte ist es ausführlich hier beschrieben: https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Backup.2FRestore_einer_SQLite_Datenbank_im_laufenden_Betrieb

Ist aber auf MySQL übertragbar wenn man das Prinzip verinnerlicht hat. Auch Commandref zu dumpMySQL in DbRep lesen, habe ich recht umfassend beschrieben.

Grüße,
Heiko
Proxmox+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

UweUwe

Tolle Anleitung, ich werde es einrichten..