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

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

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.

Was genau wird alles gelernt?

  • wie man einen mySQL-Server (Maria) installiert
  • wie neue Benutzer angelegt werden
FHEM-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 .*:.*


Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele exklusive Vorteile:

  • 5€-Gutschein für den Online-Shop
  • Zugang zu exklusiven Inhalten
  • Angebote für Produkte
  • Immer auf dem Laufenden

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.