[gelöst] DBlog MySQL Datenbank anlegen

Begonnen von maddinthebrain, 03 September 2017, 12:54:53

Vorheriges Thema - Nächstes Thema

maddinthebrain

Hallo zusammen,

ich habe es geschafft, dass ich auf meinen MySQL-Server zugreifen kann. Allerdings beschwert sich FHEM genauer DBlog darüber, diverse Sachen nicht passen.

017.09.03 12:41:57 2: DbLog logmysql -> Error table history - DBD::mysql::st execute_array failed: Table 'fhem.history' doesn't exist [err was 1146 now 2000000000]
executing 5 generated 5 errors at ./FHEM/93_DbLog.pm line 1440.


Habe ich angelegt. Die Spalte für DEVICE siehe Anhang. Die Spalte für READING ist entsprechend. Aber ich bin nicht sicher, ob es korrekt war denn:

2017.09.03 12:42:46 2: DbLog logmysql -> Error table history - DBD::mysql::st execute_array failed: Unknown column 'TIMESTAMP' in 'field list' [err was 1054 now 2000000000]
executing 20 generated 20 errors at ./FHEM/93_DbLog.pm line 1440.


Gibt es nicht einfach eine Routine, die die Datenbank mit den Tabellen in korrekter Form anlegt??

Grüße Martin
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

DS_Starter

Hallo Martin,

schau mal, in der Commandref ist extra ein Hinweis auf

ZitatEin Beispielcode zum Erstellen einer MySQL/PostgreSQL/SQLite Datenbank ist in contrib/dblog/<DBType>_create.sql zu finden. Die Datenbank beinhaltet 2 Tabellen: current und history. Die Tabelle current enthält den letzten Stand pro Device und Reading. In der Tabelle history sind alle Events historisch gespeichert. (siehe auch Attribut DbLogType) Die Tabellenspalten haben folgende Bedeutung: ......

Für MySQL wären das die Statements:


CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'fhempassword';
CREATE TABLE `fhem`.`history` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(128), UNIT varchar(32));
CREATE TABLE `fhem`.`current` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(128), UNIT varchar(32));
GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemuser'@'%';
CREATE INDEX Search_Idx ON `fhem`.`history` (DEVICE, READING, TIMESTAMP);


Wenn deine DB schon existiert brauch du nur noch die "Create Table ...". Wenn du dich nicht sicher bist lösche einfach die ganze DB und lege sie mit den Scripten über deine bevorzugte Admin-Oberfläsche neu an.

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

maddinthebrain

Danke, habe ich gerade auch gefunden, es geht!!!!!

Vielen Dank.
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

Amenophis86

Bitte noch auf Gelöst setzen. Danke
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...