MySQL/MariaDB Installation Neu

Diese Seite beschreibt die Installation und Grundeinrichtung eines MySQL/MariaDB Servers für die Nutzung mit dem database Plugin.

Aktuelle Debian- und Ubuntu-Versionen liefern MariaDB als Standard-Implementierung von MySQL im eigenen Repository aus, eine zusätzliche Paketquelle ist nicht notwendig:

sudo apt-get install mariadb-server

Mit dem folgenden Befehl kann kontrolliert werden, ob der Server läuft:

systemctl status mariadb
● mariadb.service - MariaDB 11.8.3 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: enabled)
     Active: active (running) since ...
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/

Der Server ist nach der Installation sofort einsatzbereit, der lokale root-Zugriff erfolgt standardmäßig passwortlos über den Unix-Socket (sudo mariadb), nicht über ein gesetztes Passwort. Zum Absichern der Installation (u.a. Testdatenbank entfernen, anonyme Nutzer entfernen) kann optional

sudo mariadb-secure-installation

ausgeführt werden. Der Assistent fragt dabei unter anderem, ob die Unix-Socket-Authentifizierung für root beibehalten werden soll - diese Frage kann mit Ja beantwortet werden, sofern kein root-Passwort gewünscht ist.

Anschließend wird eine Datenbank und ein eigener Benutzer für SmartHomeNG angelegt (Passwort bitte durch ein eigenes ersetzen):

sudo mariadb -e "CREATE DATABASE shng CHARACTER SET utf8mb4;"
sudo mariadb -e "CREATE USER 'shng'@'localhost' IDENTIFIED BY 'shng_password';"
sudo mariadb -e "GRANT ALL PRIVILEGES ON shng.* TO 'shng'@'localhost';"
sudo mariadb -e "FLUSH PRIVILEGES;"

Hinweis

Soll auch von einem anderen Rechner im Netzwerk auf den Server zugegriffen werden, muss statt 'shng'@'localhost' z.B. 'shng'@'%' (oder eine feste IP-Adresse) verwendet werden, und in /etc/mysql/mariadb.conf.d/50-server.cnf die Zeile bind-address entsprechend angepasst bzw. entfernt werden.

Das Plugin greift über das Python-Modul pymysql auf MySQL/MariaDB zu. Dieses Modul ist nicht Teil der Grundinstallation und muss im für SmartHomeNG verwendeten virtuellen Python Environment (siehe Virtuelle Python Environments) nachinstalliert werden:

pip3 install pymysql

Die eigentliche Plugin-Konfiguration (driver: mariadb, Verbindungsdaten) ist unter Plugin ‚database‘ Konfiguration beschrieben.