Schlagwort-Archive: GNU/Linux

Unixähnliche Mehrbenutzer-Betriebssysteme, die auf dem Linux-Kernel und wesentlich auf GNU-Software basieren. Wie CentOS, Debian, Ubuntu Fedora.

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.

Netzwerk Statistik in Echtzeit mit netstat

Netzwerkverbindungen und Netzwerk Statistik auf Linux mit netstat in Echtzeit verfolgen

Netstat – abgeleitet von Netzwerk Statistik, ist ein Befehlszeilen-Dienstprogramm, das von Systemadministratoren zum Analysieren von Netzwerkstatistiken verwendet wird. Es zeigt eine ganze Reihe von Statistiken an, wie beispielsweise offene Ports und entsprechende Adressen auf dem Hostsystem, Routing-Tabelle und maskierte Verbindungen.

Dieser Artikel beleuchtet, wie mithilfe von „netstat“ und „ss“ aktuelle Netzwerk Statistik und die Verbindungen auf einem Linux Hostsystem für Analysen in nahezu Echtzeit verfolgt werden können.

net-tools installieren

Auf vielen modernen Linux Distributionen wird netstat durch das neue Dienstprogramm ss ersetzt, falls es nicht vorinstalliert ist, kann netstat nachträglich installiert werden. Das Paket das netstat enthält ist net-tools.

$ yum install net-tools     [CentOS/RHEL]
$ apt install net-tools     [Debian/Ubuntu]

Netzwerk Statistik mit netstat

Der netstat-Befehl wird mit Filter bearbeitet, so das nur die Remote Adressen ausgegeben werden. Mit dem watch-Befehl wird netstat in Intervalle kontinuierlich ausgeführt. Die Ausgabe mit netstat zeigt die aktuelle https Netzwerk Statistik auf einem Webserver in Echtzeit.

$ watch -n 5 "netstat -nt | grep :443 | tail -n +3 | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"

Hier werden die Remote Adressen in einem Intervall von 5 Sekunden für Anfragen über https, TCP Port 443 ausgegeben.

Möchte man die aktuellen Anfragen eines SMTP-Relays verfolgen, wird Port 25 herausgefiltert, und nachfolgend alle 10 Sekunden ausgegeben.

$ watch -n 10 "netstat -nt | grep :25 | tail -n +3 | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"

Grundsätzlich ist die Intervall Überprüfung mit jedem Dienst möglich, beliebige Ports und Intervallzeiten in Sekunden können gewählt werden.

IPv6 Netzwerk Verbindungen verfolgen

Mit dem neuen Befehlszeilen-Dienstprogramm, mit dem ss-Befehl können Netzwerk Statistik und Verbindungen ebenfalls in Echtzeit verfolgt werden. Grundsätzlich fragt es den Kernel direkt ab und kann schneller antworten als netstat.

$ watch -n 3 "ss -nH | grep :443 | awk '{print \$6}' | sort | uniq -c | sort -n"

Hier werden die Filter tail und cut nicht mehr eingesetzt, da das ss-Dienstprogramm über eigene Filter Operatoren verfügt.

Es werden die Verbindungen für IPv4 so wie für IPv6 ausgegeben, jeweils mit IPv4-als-IPv6-Adresse und dem peer Source Port.

Netzwerk Statistik mit ss und multitail verfolgen

Unter Verwendung von multitail gibt es weitere Anwendungsmöglichkeiten. So können mehrere Befehle in Fenstern aufgeteilt werden, um die Netzwerk Statistik gleichzeitig zu verfolgen, wie es das Beispiel mit multitail zeigt.

$ multitail -R 3 -l "ss -nH | grep :443 | awk '{print \$6}' | sort | uniq -c | sort -n" -cS apache /var/log/apache2/access.log

Die Ausgabe zeigt das apache.log mit Netzwerk Statistik in Echtzeit mit den Verbindungen auf einem Debian Webserver ohne netstat. Wobei multitail in zwei Fenster horizontal gesplittet wird, -R 3 gibt das Intervall von 3 Sekunden vor, -l für das externe Kommando, hier „ss -nH“ mit Header Unterdrückung. Das Befehlszeilen-Tool kann mit „apt install multitail“ bereitgestellt werden.

Windows Terminal: Netzwerk Statistik in multitail verfolgen

Hinweis: Multitail bereitstellen mit sudo apt install multitail

Fazit

Der Artikel beleuchtet, wie das Dienstprogramm netstat verwendet werden kann, um mittels watch – der netstat-Befehl regelmäßig ausgeführt wird. Um die aktuelle Netzwerk Statistik und die Verbindungen zu Services in Echtzeit zu verfolgen. Mit dem Hinweis, dass „netstat“ veraltet ist und stattdessen das „ss“ Utility seinen Platz eingenommen hat. Es wird so sein, dass das „ältere“ netstat sowohl durch ss- als auch durch ip-Befehle ersetzt wird.

Der ähnliche Beitrag hier könnte dich auch interessieren.