Datenbanken dienen dazu, Daten zu sammeln, zu speichern, mit anderen Daten zu verbinden und diese bei Bedarf wieder zu liefern. Normalerweise werden Datenbanken in Verbindung mit einem Webserver und entsprechender Software – etwa einem CMS oder sonstiger Software eingesetzt.

Doch auch der normale Benutzer kann von Datenbanken profitieren – vor allem, wenn es um große Datenmengen geht. Nehmen wir einmal an, Sie haben sehr viele Bilder oder sehr viel Musikdateien. Normale Software kann bei großen Mengen dabei schon an ihre Grenzen stoßen – sie startet langsam, sie reagiert langsam. Meist nutzt Software eigene kleine Datenbanken – wie etwa SQLite – bis zu einer gewissen Menge an Daten kommt diese kleine Datenbank auch problemlos damit klar – irgendwann sollte man jedoch den Einsatz einer größeren, professionelleren Datenbank in Erwägung ziehen.

Unter Linux findet man immer wieder Anwendungen, die es ermöglichen, größere Datenbanken einzusetzen. In diesem Beitrag sehen wir uns als Beispiel die Software Digikam an. Dabei sehen wir nicht nur, wie man eine Software mit einer Datenbank verbindet – sondern auch, wie man eine Datenbank einrichtet.

In diesem Beispiel setzen wir die wohl bekannteste Datenbank unter LinuxMariaDB an. MariaDB ist die freie Version von MySQL von Oracle. Oracle – die Firma hinter MySQL – wollte nicht wirklich mit freien Entwicklern zusammen arbeiten – die freien Entwickler setzten sich ab und brachten MariaDB auf die Welt.

MariaDB installieren und absichern

Unter auf Debian basierenden Linux-Distributionen installieren Sie diese Software wie üblich ganz einfach über die Paket-Verwaltung durch das Paketmariadb-server„, unter Void Linux etwa durch die Pakete „mariadb mariadb-client„.

Unter Debian läuft die Datenbank nach der Installation automatisch – Sie können dies über Systemd als Administrator am Terminal prüfen:

systemctl status mariadb.service

Unter Void Linux müssen wir den Dienst erst erlauben. Erst richten wir das Arbeitsverzeichnis ein:

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Jetzt aktivieren wir den Dienst:

ln -s /etc/sv/mysqld /var/service/mysqld

Hierbei wird einfach gesagt der SQL-Server mit dem Runit-Dienst (das Pendant zu Systemd unter Debian) verbunden. Man legt einen Symlink von „/etc/sv/mysqld/“ in das Runit-Verzeichnis unter „/var/service/„.

Jetzt startet man den Dienst:

sv start mysqld

Nachdem die Datenbank läuft, sichern wir diese ab:

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 

Bisher gibt es noch kein Passwort für den root-Benutzer der Datenbank, wir erstellen also einen – bestätigen Sie mit Eingabe ohne etwas einzugeben:

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n]

Bestätigen Sie, um zum UNIX-Socket zu wechseln, mit Eingabe (dann wird unser root-Passwort genutzt):

Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n]

Wir werden gefragt, ob wir jetzt das Passwort für den Datenbank-Administrator wechseln möchten – mein Tipp: Nein! Vor allem, wenn Sie einen eigenen root-Benutzer des Systems (nicht der Datenbank) haben – dies erledigen wir später – denn immer wieder vergessen Benutzer dieses Passwort kurz nach der Einrichtung. Geben Sie also „n“ ein und bestätigen:

 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]

Damit niemand ohne Rechte auf die Daten in der Datenbank zugreifen kann, bestätigen wir mit Eingabe:

 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]

Hierbei kommt es darauf an – möchten Sie als Datenbank-Administrator über das Netzwerk die Datenbank verwalten oder nur vom Rechner aus, auf dem die Datenbank installiert ist. Sicherer ist es natürlich, nicht vom Netzwerk aus zugreifen zu können – also Eingabe.

 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]

MariaDB hat eine Test-Datenbank installiert – in der Regel brauchen wir diese nicht, sie kann zum Lernen über die Arbeit mit der Datenbank dienen – brauchen wir nicht, also Eingabe.

 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]

Wir bestätigen noch einmal die Einstellungen und haben damit die Einrichtung abgeschlossen.


Wie beschrieben – wir haben die abgesicherte Einrichtung der Datenbank abgeschlossen, jetzt können wir in die Datenbank wechseln und etwa ein Passwort für den Datenbank-Administrator erstellen. Dies ist optional – Sie können mit Ihrem root-Passwort in die Datenbank, alternativ eben mit „sudo„. Um ein root-Passwort für die Datenbank zu erstellen:

mariadb

Oder eben mit „sudo„:

sudo mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.5.10-MariaDB-debug MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Wir finden uns jetzt im Prompt der Datenbank wieder, nach „MariaDB [(none)]>“ wartet die Datenbank auf Ihre Eingaben. Erstellen wir das root-Passwort der Datenbank – „PASSWORT“ ersetzen Sie durch ein sicheres Passwort:

GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'PASSWORT' WITH GRANT OPTION;

Wir übernehmen die Einstellungen:

FLUSH PRIVILEGES;

Jetzt können wir uns wieder ausloggen:

QUIT;

MariaDB nutzen

Wie oben schon beschrieben nutzen wir für dieses Beispiel Digikam – Digikam soll die Datenbank nutzen können. Wir erstellen die dafür nötige Datenbank, den zugehörigen Benutzer und vergeben die Rechte. Grundsätzlich können Sie den Vorgang für jede andere Software übernehmen:

Zu Beginn loggen wir uns in die Datenbank ein – entweder als root:

mariadb
sudo mariadb

Oder, Sie haben ein root-Passwort für die Datenbank erstellt:

mysql -u root -p
sudo mysql -u root -p

Jetzt erstellen wir die Datenbankdigikam„:

CREATE DATABASE digikam;

Damit wäre die passende Datenbank erstellt – Sie können diese aber natürlich benennen, wie Sie möchten. Jetzt erstellen wir den Benutzer „digikam“ und dessen Passwort – hier ersetzen Sie „PASSWORT“ durch ein Passwort:

CREATE USER 'digikam'@'%' IDENTIFIED BY 'PASSWORT';

Jetzt übergeben wir alle Rechte an der Datenbankdigikam“ an den Benutzer „digikam“ – „PASSWORT“ ersetzen Sie dabei wieder durch das erstellte Passwort für den Benutzer:

GRANT ALL PRIVILEGES ON digikam.* TO 'digikam'@'%';
GRANT ALL ON *.* TO 'digikam'@'%' IDENTIFIED BY 'PASSWORT';

Jetzt übernehmen wir die Einstellungen:

FLUSH PRIVILEGES;

Und nun loggen wir uns wieder aus:

QUIT;

In Digikam öffnen wir jetzt die Einstellungen, hier finden wir auch die Einstellungen für die Datenbank – „Einstellungen → Digikam einrichten → Datenbank„:

Hier geben Sie jetzt als Datenbank-Typ „MySQL-Server“ an, den Rechnernamen setzen Sie auf „localhost“ (andernfalls die IP-Adresse bei einem entfernten Rechner). Weiter geben Sie natürlich den Benutzer der Datenbank an und dessen Passwort – darunter folgt die angelegte Datenbank. Nach dem Übernehmen der Einstellungen kommt die jeweilige Software auch mit riesigen Datenmengen problemlos klar.

Schreibe einen Kommentar

4 Reaktionen

Neue Themen im Forum
Ubuntu 24.04 LTS Desktop ist verf …* Neues Desktop-Installationsprogramm mit Unterstützung für die au … Weiterlesen
Externe Datenträger verschlüsseln@zaniah Das "Gnome-Disk-Utility" wird zwar vom Gnome-Pr … Weiterlesen
XFCE Desktop Debian - Benachricht …Vielleicht eine kleine Anregung https://debianforum.de/forum/viewt … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

September 2023
M D M D F S S
 123
45678910
11121314151617
18192021222324
252627282930  
Archive