Archiv der Kategorie: Linux Howto

THINK UNBLOG GNU/Linux Tutorials Howto Workaround DevOps Code.

MariaDB MySQL Datenbank erstellen und löschen in Terminal

MySQL MariaDB Datenbank verwalten in der Shell

MySQL ist im Linux Alltag längst Standard, irgendwann stösst jeder auf mindestens eine der beiden Open Source Datenbanken, gemeint sind die relationalen Datenbanken MariaDB und PostgreSQL. Deswegen wird sich aber nicht gleich jedermann als SQL Crack behaupten wollen, wenn gleich sich davon ganz fernhalten auch keine Option ist. Die meisten Arbeiten können mit einer Handvoll Befehle in der Kommandozeile erledigt werden. In diesem Beitrag führe ich kurz durch die Kommandos von MySQL oder MariaDB, um eine neue Datenbank zu erstellen, sie aufzulisten und eine Datenbank zu löschen.

Inhalt

MySQL MariaDB Datenbank Konsole Client starten

Zunächst muss man sich am MySQL oder MariaDB Server anmelden. Dazu verbindet man sich über SSH zum Server und wird zu root.

Der Anmeldeprozess gestaltet sich einfach. Ist man einmal mit dem Server verbunden, nutzt man den MySQL-Client für die Anmeldung.

$ mysql -u root

Wenn kein Kennwort für den MariaDB Datenbank Benutzer root gesetzt wurde, kann man auf den Parameter -p verzichten. Klappt alles, erscheint folgende Ausgabe:

MySQL MariaDB Databases

  Das MariaDB-Root-Passwort sollte ein anderes als das System-root-Passwort sein, dazu kann das Skript mariadb_secure_installation ausgeführt werden. Dieses Skript legt das MariaDB-Root-Passwort fest, deaktiviert die Remote-Root-Anmeldung und entfernt anonyme Benutzer. Wir empfehlen, jede Frage mit dem Zeichen „Y“ für „Ja“ zu beantworten.

[root@debian:~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 63136
Server version: 10.3.31-MariaDB-0+deb10u1 Debian 10

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)]>

Direkt nach der Anmeldung als root kann man schon neue Datenbanken erstellen oder bestehende Datenbanken anzeigen.

MySQL MariaDB SHOW DATABASES

Wenn man ein neu installiertes System mit einer neuen MySQL oder MariaDB Instanz vor sich hat, dann sind noch nicht all zu viele Datenbanken vorhanden. An dieser stelle lässt man sich zunächst einmal alle Datenbanken anzeigen, indem das SQL Kommando SHOW DATABASES; eingegeben wird. Achte darauf, dass jedes Kommando in der SQL Konsole mit Semikolon ; abschließt.

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.001 sec)

MariaDB [(none)]>

MySQL MariaDB CREATE DATABASE

Das Erstellen einer neuen Datenbank unter MySQL oder MariaDB ist genauso einfach, wie das auflisten der bestehenden Datenbanken. Nutze einfach das SQL Kommando CREATE DATABASE; um eine neue Datenbank mit dem Namen meinblog zu erstellen.

mysql> CREATE DATABASE meinblog;
Query OK, 1 row affected (0.00 sec)

mysql>

Wenn alles geklappt hat, dann ist jetzt eine neue MariaDB – MySQL Datenbank unter dem Namen „meinblog“ erstellt. Wenn man sich jetzt alle Datenbanken anzeigt, sollte die neue Datenbank in der Liste erscheinen:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| meinblog           |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

mysql>

MySQL MariaDB DROP DATABASE

Beim Löschen einer MariaDB – MySQL Datenbank sollte man sich vergewissern, dass die richtige Datenbank vom Server gelöscht wird. Denn einmal gelöscht, ist die Datenbank im Regelfall endgültig weg.

Zunächst alle Datenbanken auf dem Datenbank-Server auflisten. Dazu nutze wieder das Kommando SHOW DATABASES; in der MySQL-Konsole.

Kopiere den Namen der Datenbank in die Zwischenablage, die gelöscht werden soll.

Für das Löschen einer Datenbank ist das SQL-Kommando DROP DATABASE; zuständig. Die Syntax ist ähnlich wie beim Erstellen einer Datenbank.

mysql> DROP DATABASE meinblog;
Query OK, 0 rows affected (0.01 sec)

mysql>

Der MariaDB – MySQL-Client ist an dieser Stelle nicht sehr gesprächig. Signalisiert uns aber mit einem „OK“, dass das Kommando erfolgreich ausgeführt wurde.

Nun wieder mit dem Kommando SHOW DATABASES; überprüfen, ob die Datenbank erfolgreich entfernt wurde.

Den MySQL-Client verlssen mit quit oder exit;.

MariaDB [(none)]> quit
Bye

MySQL MariaDB CREATE USER

Es wird empfohlen ein Benutzer für die neu erstellte MariaDB – MySQL Datenbank zu erstellen, hierzu dient das Kommando CREATE USER.

CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'ChangeMe';

Der neue Benutzer dbuser mit dem Passwort ChangeMe wird angelegt, die Platzhalter durch Namen und Passwort ersetzen.

Alle Rechte für den Benutzer dbuser für die Datenbank meinblog erteilen.

GRANT ALL PRIVILEGES ON meinblog.* TO "dbuser"@"localhost" IDENTIFIED BY "ChangeMe";

Zum Schluss die übergeordneten root Rechte entfernen.

FLUSH PRIVILEGES;
EXIT;

Ein MariaDB – MySQL root-Benutzer dbadmin erstellen, dieser alle Rechte für alle Datenbanken besitzt.

GRANT ALL PRIVILEGES ON *.* TO "dbadmin"@"localhost" IDENTIFIED BY "ChangeMe";

Der root-Benutzer soll die Rechte weiter vererben, Benutzer selber erstellen, ändern und löschen können, das mit WITH GRANT OPTION.

GRANT ALL ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;

Der neu erstellte Benutzer erhält Zugriff für nur diese Datenbank.

MySQL MariaDB SHOW USERS

Nicht etwa wie erwartet, gibt es den Befehl SHOW USERS tatsächlich nicht, vorhandene MySQL User können jedoch mit SELECT User und Filter abgefragt werden.

SELECT User, Host, Password FROM mysql.user;
+---------------+-----------+-------------------------------------------+
| User          | Host      | Password                                  |
+---------------+-----------+-------------------------------------------+
| root          | localhost |                                           |
| dbuser        | localhost | *01B3CD509B05DCC2392E9C689F9FC3A13C69DE88 |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.000 sec)

MySQL MariaDB ALTER USER

Das MariaDB – MySQL Datenbank User Passwort lässt sich ändern, dazu kann das Kommando ALTER USER verwendet werden:

use meinblog;
ALTER USER 'dbuser'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
EXIT;

Das neue Passwort für den MariaDB dbuser wie folgt überprüfen:

$ mariadb -u dbuser -p

Das neue Passwort für dbuser eingeben.

MySQL MariaDB DROP USER

Ein Benutzer für eine MariaDB – MySQL Datenbank wieder löschen, hierzu das Kommando DROP USER.

DROP USER "dbuser"@"localhost";

MySQL MariaDB RENAME USER

Bestehende MariaDB – MySQL Benutzer können umbenannt werden, dafür gibt es das Kommando RENAME USER.

RENAME USER 'dbuser'@'localhost' TO 'newuser'@'localhost';

Der Benutzer dbuser soll newuser heissen.

Conclusion

In diesem Tutorial lehrnt man, wie man MySQL und MariaDB Datenbanken mit einer Handvoll Kommandos verwalten kann. Bei der Integration oder bei der Migration von CMS Applikationen, sind Datenbanken mit wenigen Kommandos in der Linux Console erstellt, gelöscht oder überprüft, was vor allem dann nützlich ist, wenn kein phpMyAdmin zur Verfügung steht.

clamsmtp – postfix Konfiguration mit dpkg-reconfigure

ClamAV und Postfix mit dpkg-reconfigure in Debian 11

Mit dem Befehl dpkg-reconfigure werden Pakete neu konfiguriert, die debconf zur Verwaltung der Konfigurationsdateien nutzt. Dies mittlerweile für den Großteil der Pakete möglich ist. Wie für Postfix und ClamAV wird dpkg-reconfigure in einer grafischen Oberfläche basierend auf ASCII-Zeichen ausgeführt. Hierbei kann zwischen verschiedenen interaktiven und vollautomatischen Modi gewählt werden.

dpkg-reconfigure clamav-daemon

Der ClamAV Daemon (clamav-daemon) kann automatisch oder manuell konfiguriert werden. In der Konfigurationsdatei /etc/clamav/clamd.conf.

$ dpkg-reconfigure clamav-daemon
dpkg-reconfigure - Der ClamAV Daemon (clamav-daemon) kann automatisch oder manuell konfiguriert werden.

clamsmtp

Für ClamAV – ClamSMTP (clamsmtp) lässt lediglich festhalten wie mit quarantained Inhalt im Postfix spool directory umgegangen werden soll. In der Konfigurationsdatei /etc/clamsmtpd.conf.

$ dpkg-reconfigure clamsmtp
clamsmtp Konfiguration mit dpkg-reconfigure

clamav-freshclam

Bei freshclam (clamav-freshclam) kann die Update methode definiert werden, Konfigurationsdatei /etc/clamav/freshclam.conf.

$ dpkg-reconfigure clamav-freshclam
dpkg-reconfigure clamav-freshclam

dpkg-reconfigure postfix

Ebenfalls kann Postfix konfiguriert werden. In der Konfigurationsdatei /etc/postfix/main.cf

$ dpkg-reconfigure postfix
dpkg-reconfigure postfix

ClamAV ClamSMTP Postfix Status

Um den Betriebszustand der Daemons abzufragen, wird systemctl status an systemd gesendet.

$ systemctl status clamav-daemon clamav-freshclam clamsmtp postfix

Beschreibung

dpkg-reconfigure konfiguriert Pakete neu, nachdem sie bereits installiert wurden. Wie beispielsweise Postfix und ClamAV. Übergebe die Namen eines oder mehrerer Pakete, die neu konfiguriert werden sollen. Es werden Konfigurationsfragen gestellt, ähnlich wie bei der Erstinstallation des Pakets.

Wenn nur die aktuelle Konfiguration eines Pakets angesehen werden soll, kann stattdessen „debconf-show“ verwendet werden.

dpkg-reconfigure ist ein leistungsstarkes Befehlszeilentool, mit dem ein bereits installiertes Paket neu konfiguriert werden kann. Es ist eines der mehreren Tools, die unter dpkg angeboten werden – dem zentralen Paketverwaltungssystem unter Debian/Ubuntu Linux. Es funktioniert in Verbindung mit Debconf, dem Konfigurationssystem für Debian-Pakete. Debconf registriert die Konfiguration aller installierten Pakete auf einem System.

Dieses Tool wird tatsächlich verwendet, um eine gesamte Ubuntu- oder Debian-Systeminstallation neu zu konfigurieren. Es werden einfach die Namen der neu zu konfigurierenden Pakete übergeben, dabei werden eine Reihe von Konfigurationsfragen gestellt, genau wie bei der Erstinstallation des Pakets auf dem System.