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
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
Danke, habe ich gerade auch gefunden, es geht!!!!!
Vielen Dank.
Bitte noch auf Gelöst setzen. Danke