FHEM Tutorial-Reihe - Part 7.3: mySQL-Server (MariaDB) für Logging nutzen
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
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 .*:.*