Datenbankverbindung und SQL-Shell

MySQLBeginner
Jetzt üben

Einführung

MySQL und MariaDB sind relationale Datenbanksysteme, die zum Speichern und Organisieren von Anwendungsdaten verwendet werden. Im Gegensatz zu gewöhnlichen Dateien ist ein Datenbankserver darauf ausgelegt, strukturierte Abfragen, den gleichzeitigen Zugriff, Berechtigungen und die dauerhafte Speicherung kontrolliert zu verwalten.

Das bedeutet, dass Sie Datenbankdateien normalerweise nicht mit einem Texteditor öffnen und manuell ändern. Sie greifen über einen Datenbank-Client darauf zu. Der Server setzt dabei Regeln für Syntax, Berechtigungen und Konsistenz durch.

Um Daten zu verwalten, müssen Sie wissen, wie Sie mit dem Datenbankserver kommunizieren. In diesem Lab lernen Sie den grundlegenden Ablauf über die Befehlszeile: eine Verbindung zu MySQL herstellen, die SQL-Shell öffnen und interaktiv durch Datenbanken navigieren.

Sie üben den grundlegenden Arbeitsablauf jeder Datenbankadministration:

  1. Herstellen einer Verbindung zum Server.
  2. Untersuchen, welche Datenbanken auf dem Server gespeichert sind.
  3. Auswählen einer bestimmten Datenbank, mit der Sie arbeiten möchten.
  4. Sicheres Trennen der Verbindung nach Abschluss Ihrer Arbeit.

Mit dem Datenbankserver verbinden

Für die Interaktion mit der MySQL-Datenbank verwenden Sie den Befehlszeilen-Client mysql. Mit diesem Werkzeug können Sie Befehle an den Server senden und die Ergebnisse anzeigen.

In diesem Schritt melden Sie sich als Benutzer root an. Der Benutzer root ist das Super-Admin-Konto mit vollständigem Zugriff auf alles auf dem Datenbankserver.

Verwechseln Sie den Datenbankbenutzer root nicht mit dem Linux-Benutzer root. Es handelt sich um zwei verschiedene administrative Identitäten in unterschiedlichen Systemen, auch wenn beide über weitreichende Berechtigungen verfügen.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

mysql -u root -p

Erklärung der Optionen:

  • -u root: Legt den gewünschten usernamen (root) fest.
  • -p: Fordert den Client auf, Sie nach einem Passwort zu fragen.

Nachdem Sie die Eingabetaste gedrückt haben, fordert das System Sie zur Eingabe des Passworts auf.

Geben Sie root ein und drücken Sie die Eingabetaste (Enter).

Sicherheitshinweis: Wenn Sie Passwörter in einem Linux-Terminal eingeben, werden keine Zeichen auf dem Bildschirm angezeigt – weder Sternchen noch Punkte. Dies ist eine Sicherheitsfunktion, damit Personen, die Ihnen über die Schulter schauen, die Passwortlänge nicht erkennen können. Geben Sie einfach blind root ein und drücken Sie die Eingabetaste.

Nach erfolgreicher Authentifizierung ändert sich die Eingabeaufforderung zu mysql>. Das zeigt an, dass Sie die Linux-Shell verlassen haben und sich nun in der MySQL-Umgebung befinden.

Von diesem Punkt an werden Befehle als SQL-Anweisungen an den Datenbankserver gesendet. Deshalb ändert sich die Eingabeaufforderung: Sie befinden sich jetzt in einer anderen Befehlssprache und einem anderen Kontext.

Verfügbare Datenbanken untersuchen

Nachdem Sie die Verbindung hergestellt haben, können Sie sehen, welche Daten auf dem Server gespeichert sind. Ein einzelner MySQL-Server kann viele verschiedene Datenbanken verwalten, zum Beispiel eine für einen Blog, eine für ein Benutzerverzeichnis und eine für Metriken.

Um alle Datenbanken aufzulisten, auf die Ihr Benutzer zugreifen kann, führen Sie den folgenden SQL-Befehl an der Eingabeaufforderung mysql> aus:

SHOW DATABASES;

Wichtige Regel: In SQL müssen Befehle mit einem Semikolon ; enden.

So erkennt der SQL-Client, wo eine Anweisung endet. In einer interaktiven Shell dient das Semikolon als eindeutige Markierung für „jetzt ausführen“.

Damit teilen Sie dem Server mit: „Ich bin mit der Eingabe meines Befehls fertig. Bitte führe ihn jetzt aus.“

Wenn Sie das Semikolon vergessen und die Eingabetaste drücken, sehen Sie die Eingabeaufforderung ->. Das bedeutet, dass der Server darauf wartet, dass Sie den Befehl abschließen. Geben Sie einfach ; ein und drücken Sie die Eingabetaste, um den Fehler zu beheben.

Sie sollten eine Liste sehen, die standardmäßige Systemdatenbanken wie information_schema, mysql, performance_schema und sys enthält.

Eine Datenbank auswählen

Bevor Sie Datentabellen lesen oder schreiben können, müssen Sie MySQL mitteilen, mit welcher Datenbank Sie arbeiten möchten. Dadurch legen Sie Ihren aktuellen Kontext fest, sodass Sie den Datenbanknamen nicht in jeder einzelnen Abfrage angeben müssen.

Ein einzelner Datenbankserver kann viele getrennte Datenbanken hosten. Der Befehl USE ändert den aktuellen Kontext. Nachfolgende SQL-Anweisungen werden dann auf die ausgewählte Datenbank angewendet.

Wir wählen die interne Systemdatenbank mysql aus. Sie speichert Benutzerkonten und Berechtigungen.

Führen Sie den folgenden Befehl aus:

USE mysql;

Sie sollten die Meldung Database changed sehen.

Hinweis: Der Befehl USE ist eine besondere Ausnahme und erfordert nicht zwingend ein Semikolon. Trotzdem ist es eine gute Gewohnheit, immer eines zu verwenden.

Die SQL-Shell verlassen

Wenn Sie Ihre Aufgaben in der Datenbank abgeschlossen haben, sollten Sie die Verbindung ordnungsgemäß schließen. Dadurch kehren Sie zur normalen Linux-Befehlszeile zurück.

Geben Sie zum Verlassen der MySQL-Shell Folgendes ein:

exit

Sie sehen die Meldung Bye, und Ihre Eingabeaufforderung kehrt zur bekannten Eingabeaufforderung labex:~/project$ zurück.

Tipp: Sie können zum Beenden auch quit oder die Tastenkombination Ctrl + D verwenden.

Zusammenfassung

In diesem Lab haben Sie das „Hello World“ der Interaktion mit Datenbanken kennengelernt:

  • Sicheres Herstellen einer Verbindung mit mysql -u -p.
  • Anzeigen der verfügbaren Datenbanken mit SHOW DATABASES;.
  • Wechseln des Kontexts mit USE <database>;.
  • Sicheres Verlassen der Umgebung.

Diese vier einfachen Befehle bilden die Grundlage für alles Weitere, was Sie mit MySQL tun werden.