FHEM Tutorial-Reihe - Part 7.3: mySQL-Server (MariaDB) für Logging nutzen

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

FHEM Tutorial-Reihe - Part 7.3: mySQL-Server (MariaDB) für Logging nutzen
FHEM Tutorial-Reihe - Part 7.3: mySQL-Server (MariaDB) für Logging nutzen
  • Matthias Kleine
  • 12.03.2018
  • mySQL
  • Integration

Vor fast zwei Jahren habe ich bereits ein Video zu mySQL gemacht. Mittlerweile wird allerdings unter Raspbian Stretch nicht mehr mySQL, sondern MariaDB installiert. Das Ganze ist untereinander zwar kompatibel, aber die Konfiguration ist ein wenig anders. Daher gibt es hier jetzt sogar einen separaten Blog-Beitrag für MariaDB.

Achtung: Dieser Inhalt wurde vor mehreren Jahren aufgenommen und ist nicht mehr aktuell! Es ist nicht empfohlen nach dieser Anleitung vorzugehen.

Was genau wird alles gelernt?

  • wie man einen mySQL-Server (Maria) installiert
  • wie neue Benutzer angelegt werden
Hausbau-Kurs

Folgende Befehle braucht ihr:

sudo apt-get update
sudo apt-get install mysql-server mysql-client
sudo apt-get install libdbi-perl libclass-dbi-mysql-perl

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

sudo mysql -u root -p

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '6svtUQ3nWJUBHVCJu';
GRANT USAGE ON *.* TO 'root'@'%' WITH GRANT OPTION;
exit
sudo service mysql restart
CREATE DATABASE `fhem` DEFAULT CHARACTER SET = `utf8`;

CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'yJSKRYEvwwxVrYUmg';

REVOKE CREATE ROUTINE, CREATE VIEW, CREATE USER, ALTER, SHOW VIEW, CREATE, ALTER ROUTINE, EVENT, SUPER, INSERT, RELOAD, SELECT, DELETE, FILE, SHOW DATABASES, TRIGGER, SHUTDOWN, REPLICATION CLIENT, GRANT OPTION, PROCESS, REFERENCES, UPDATE, DROP, REPLICATION SLAVE, EXECUTE, LOCK TABLES, CREATE TEMPORARY TABLES, INDEX ON *.* FROM 'fhemuser'@'%';

UPDATE mysql.user SET max_questions = 0, max_updates = 0, max_connections = 0 WHERE User = 'fhemuser' AND Host = '%';

GRANT CREATE ROUTINE, CREATE VIEW, ALTER, SHOW VIEW, CREATE, ALTER ROUTINE, EVENT, INSERT, SELECT, DELETE, TRIGGER, GRANT OPTION, REFERENCES, UPDATE, DROP, EXECUTE, LOCK TABLES, CREATE TEMPORARY TABLES, INDEX ON `fhem`.* TO 'fhemuser'@'%';

USE `fhem`;

CREATE TABLE `history` (
    `TIMESTAMP` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `DEVICE` varchar(64) DEFAULT NULL,
    `TYPE` varchar(64) DEFAULT NULL,
    `EVENT` varchar(512) DEFAULT NULL,
    `READING` varchar(64) DEFAULT NULL,
    `VALUE` varchar(255) DEFAULT NULL,
    `UNIT` varchar(32) DEFAULT NULL,
    KEY `IDX_HISTORY` (`DEVICE`,`READING`,`TIMESTAMP`,`VALUE`),
    KEY `DEVICE` (`DEVICE`,`READING`)
);

CREATE TABLE `current` (
  `TIMESTAMP` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `DEVICE` varchar(64) DEFAULT NULL,
  `TYPE` varchar(64) DEFAULT NULL,
  `EVENT` varchar(512) DEFAULT NULL,
  `READING` varchar(64) DEFAULT NULL,
  `VALUE` varchar(255) DEFAULT NULL,
  `UNIT` varchar(32) DEFAULT NULL
);
sudo cp /opt/fhem/contrib/dblog/db.conf /opt/fhem/db.conf
sudo chown fhem:dialout /opt/fhem/db.conf
sudo vi /opt/fhem/db.conf

Das ist dann der Inhalt dieser Datei. Bitte das Passwort entsprechend anpassen und nich von mir übernehmen.

%dbconfig= (
	connection => "mysql:database=fhem;host=localhost;port=3306",
	user => "fhemuser",
	password => "yJSKRYEvwwxVrYUmg",
);
define DBLogging DbLog /opt/fhem/db.conf .*:.*
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos