MySQL-Befehlsleitfaden: Grundlagen für Anfänger bis Fortgeschrittene, CRUD, Benutzer, Backup & Fehlersuche

目次

1. Einführung

MySQL ist eine weit verbreitete Open-Source-Relational-Datenbank unter den Datenbankmanagementsystemen (DBMS). Sie ist besonders beliebt für Web-Anwendungen und Unternehmenssysteme. In diesem Artikel erklären wir wesentliche MySQL-Befehle im Detail und strukturieren den Inhalt so, dass Anfänger bis fortgeschrittene Benutzer reibungslos lernen können.

1.1 Was ist MySQL?

MySQL ist eine Software zur Verwaltung einer Relational-Datenbank (RDB). Die Daten werden in Tabellen gespeichert, und Sie manipulieren die Daten mit SQL (Structured Query Language). MySQL hat die folgenden Merkmale:

  • Open-Source und kostenlos für jeden zu verwenden
  • Schnelle und leichtgewichtige Leistung
  • Kompatibel mit vielen Programmiersprachen (wie PHP, Python und Java)
  • Geeignet für den Betrieb großer Datenbanken

1.2 Vorteile des Lernens von MySQL-Befehlen

Um MySQL effizient zu nutzen, ist es wichtig, die grundlegenden Befehle zu verstehen. Wichtige Vorteile umfassen:

  • Effizientere Datenverwaltung : Das Beherrschen von SQL-Befehlen ermöglicht es Ihnen, Daten schnell abzurufen, zu aktualisieren und zu löschen
  • Automatisierung des Workflows : Mit Skripten können Sie Datenbankoperationen automatisieren
  • Besseres Fehlerhandling : Wenn Probleme auftreten, können Sie sie mit den entsprechenden SQL-Befehlen beheben

1.3 Was Sie in diesem Artikel lernen werden

Dieser Artikel erklärt die folgenden Themen im Detail:

  • Grundlegende MySQL-Operationen (Starten, Verbinden und Datenbankoperationen)
  • Hinzufügen, Abrufen, Aktualisieren und Löschen von Daten (CRUD-Operationen)
  • Benutzerverwaltung und Berechtigungs-Einstellungen
  • Nützliche Befehle und Fehlerbehebung

Als Nächstes gehen wir jeden Abschnitt der Reihe nach durch. Lassen Sie uns mit den grundlegenden MySQL-Operationen beginnen.

2. Grundlegende MySQL-Operationen (anfängerfreundlich)

2.1 Starten und Verbinden mit MySQL

2.1.1 MySQL starten

Da MySQL als Serverprogramm läuft, müssen Sie den Server zuerst starten. Die Startmethode unterscheidet sich je nach Betriebssystem.

Starten unter Linux / macOS

Unter Linux und macOS können Sie MySQL mit dem systemctl-Befehl starten.

sudo systemctl start mysql

Überprüfen, ob MySQL läuft

sudo systemctl status mysql

Wenn Sie „active (running)“ sehen, läuft MySQL normal.

Starten unter Windows

Unter Windows wird MySQL oft als Dienst ausgeführt, sodass Sie den net start-Befehl verwenden können.

net start mysql

Oder, wenn Sie XAMPP verwenden, öffnen Sie das XAMPP-Control-Panel und klicken Sie auf „Start“ für „MySQL“.

2.1.2 Verbinden mit MySQL

Um sich mit MySQL zu verbinden, verwenden Sie den mysql-Befehl. Der grundlegende Verbindungs-Befehl lautet wie folgt:

mysql -u username -p
Verbinden als root-Benutzer

Standardmäßig ist der root-Benutzer als Administrator konfiguriert. Sie können sich mit dem folgenden Befehl verbinden:

mysql -u root -p

Nachdem Sie Enter drücken, werden Sie aufgefordert, ein Passwort einzugeben. Wenn Sie das richtige Passwort eingeben, können Sie sich bei MySQL anmelden.

Verbinden mit einem bestimmten Host

Um sich mit einem remote MySQL-Server zu verbinden, verwenden Sie die Option -h.

mysql -h hostname -u username -p

Zum Beispiel, um sich mit einem MySQL-Server unter 192.168.1.100 zu verbinden, schreiben Sie:

mysql -h 192.168.1.100 -u root -p
Verbinden durch Angabe einer Portnummer

Der Standard-MySQL-Port ist 3306. Wenn er geändert wurde, können Sie ihn mit der Option -P angeben.

mysql -h 192.168.1.100 -P 3307 -u root -p

2.2 Grundlegende MySQL-Befehle

Sobald Sie mit MySQL verbunden sind, versuchen Sie, einige grundlegende Befehle auszuführen.

2.2.1 MySQL-Version überprüfen

Um die MySQL-Version zu überprüfen, die Sie derzeit verwenden, führen Sie den folgenden Befehl aus:

SELECT VERSION();

2.2.2 Aktuelle Datenbank überprüfen

Um zu überprüfen, welche Datenbank derzeit ausgewählt ist, führen Sie aus:

SELECT DATABASE();

Wenn keine Datenbank ausgewählt ist, wird NULL zurückgegeben.

2.2.3 Verfügbare Datenbanken auflisten

Um die in MySQL vorhandenen Datenbanken aufzulisten, verwenden Sie:

SHOW DATABASES;

2.3 Häufige Fehler und Lösungen

2.3.1 „Access denied“-Fehler

Beispiel-Fehler:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Wie zu beheben:
  1. Überprüfen Sie, ob das Passwort korrekt ist
  2. Überprüfen und setzen Sie die root‑Privilegien zurück
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;
    

2.3.2 „Kann keine Verbindung zum MySQL‑Server auf ‘localhost’ herstellen“ Fehler

Beispiel‑Fehler:

ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (10061)
Wie zu beheben:
  1. Prüfen Sie, ob MySQL läuft ( systemctl status mysql )
  2. Starten Sie MySQL neu
    sudo systemctl restart mysql
    

2.4 Zusammenfassung

In diesem Abschnitt haben wir erklärt, wie man MySQL startet und eine Verbindung herstellt.

3. Datenbankoperationen

In MySQL erstellen Sie eine Datenbank, um Daten zu verwalten, und organisieren dann Informationen, indem Sie Tabellen darin ablegen. In diesem Abschnitt erklären wir grundlegende Vorgänge wie das Erstellen, Auswählen, Auflisten und Löschen von Datenbanken im Detail.

3.1 Erstellen einer Datenbank

Um eine Datenbank in MySQL zu erstellen, verwenden Sie den Befehl CREATE DATABASE.

3.1.1 Erstelle eine einfache Datenbank

Wenn Sie den folgenden SQL‑Befehl ausführen, können Sie eine neue Datenbank namens my_database erstellen.

CREATE DATABASE my_database;
Meldung bei erfolgreichem Erstellen
Query OK, 1 row affected (0.01 sec)

3.1.2 Wenn Sie versuchen, eine bereits vorhandene Datenbank zu erstellen

Falls die Datenbank bereits existiert, sehen Sie einen Fehler wie den folgenden:

ERROR 1007 (HY000): Can't create database 'my_database'; database exists

Um diesen Fehler zu vermeiden, ist es sinnvoll, die Option IF NOT EXISTS hinzuzufügen.

CREATE DATABASE IF NOT EXISTS my_database;

Wenn Sie diesen Befehl ausführen, wird die Datenbank nur erstellt, wenn sie noch nicht existiert.

3.2 Auflisten von Datenbanken

Um zu prüfen, welche Datenbanken auf dem aktuellen MySQL‑Server existieren, verwenden Sie den Befehl SHOW DATABASES.

SHOW DATABASES;

Beispielausgabe:

+--------------------+
| Database          |
+--------------------+
| information_schema |
| my_database       |
| mysql             |
| performance_schema |
| sys               |
+--------------------+

Hinweis: Systemdatenbanken wie mysql und information_schema werden für die MySQL‑Administration benötigt.

3.3 Auswählen einer Datenbank

In MySQL müssen Sie die Datenbank auswählen, die Sie verwenden möchten. Um eine Datenbank festzulegen, führen Sie den Befehl USE aus.

USE my_database;
Meldung bei Erfolg
Database changed

Um zu bestätigen, welche Datenbank aktuell ausgewählt ist, verwenden Sie den folgenden Befehl:

SELECT DATABASE();

Beispielausgabe:

+------------+
| DATABASE() |
+------------+
| my_database |
+------------+

3.4 Löschen einer Datenbank

Um eine nicht mehr benötigte Datenbank zu löschen, verwenden Sie den Befehl DROP DATABASE.

DROP DATABASE my_database;

3.4.1 Wichtige Hinweise vor dem Löschen

  • Vorsicht: Das Löschen einer Datenbank entfernt alle Daten!
  • Um versehentliche Fehler zu vermeiden, können Sie auch IF EXISTS hinzufügen.
    DROP DATABASE IF EXISTS my_database;
    

Dieser Befehl beendet sich ohne Fehler, selbst wenn my_database nicht existiert.

3.5 Häufige Fehler und Lösungen

3.5.1 „Zugriff verweigert für Benutzer“ Fehler

Beispiel‑Fehler:

ERROR 1044 (42000): Access denied for user 'user_name'@'localhost' to database 'my_database'
Wie zu beheben
  • Gewähren Sie Berechtigungen mit dem Befehl GRANT
    GRANT ALL PRIVILEGES ON my_database.* TO 'user_name'@'localhost';
    FLUSH PRIVILEGES;
    

3.5.2 „Kann Datenbank nicht löschen“ Fehler

Beispiel‑Fehler:

ERROR 1010 (HY000): Error dropping database (can't rmdir './my_database', errno: 39)
Wie zu beheben
  • Starten Sie MySQL neu
    sudo systemctl restart mysql
    
  • Löschen Sie zuerst alle Tabellen in my_database und führen Sie dann DROP DATABASE aus.

3.6 Zusammenfassung

In diesem Abschnitt haben Sie gelernt, wie man Datenbanken erstellt, auswählt, auflistet und löscht.

4. Tabellenoperationen

After creating a database, you need to create Tabellen inside it to organize data. A table is like a grid for storing data, consisting of columns and rows (records).

In diesem Abschnitt erklären wir die Grundoperationen wie Erstellen, Prüfen, Auflisten und Löschen von Tabellen im Detail.

4.1 Erstellen einer Tabelle

To create a table, use the CREATE TABLE command. If you run the following SQL, it creates a table named users.

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.1.1 Erklärung jedes Elements beim Erstellen einer Tabelle

  • id INT AUTO_INCREMENT PRIMARY KEY
  • Die Spalte id ist ein Integer (INT), erhöht sich automatisch (AUTO_INCREMENT) und ist als Primärschlüssel (PRIMARY KEY) festgelegt.
  • name VARCHAR(50) NOT NULL
  • Die Spalte name ist ein String (VARCHAR) mit bis zu 50 Zeichen und ist aufgrund von NOT NULL erforderlich.
  • email VARCHAR(100) UNIQUE NOT NULL
  • Die Spalte email ist ein String mit bis zu 100 Zeichen, und die UNIQUE-Einschränkung verhindert doppelte E‑Mail‑Adressen.
  • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  • Die Spalte created_at setzt automatisch das aktuelle Datum/Uhrzeit als Standardwert.
Meldung bei Erfolg
Query OK, 0 rows affected (0.02 sec)

4.2 Tabellenstruktur prüfen

To check the structure of a table you created, use DESC or SHOW COLUMNS.

DESC users;

Or

SHOW COLUMNS FROM users;

Example output:

+------------+--------------+------+-----+-------------------+----------------+
| Field      | Type         | Null | Key | Default           | Extra          |
+------------+--------------+------+-----+-------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL              | auto_increment |
| name       | varchar(50)  | NO   |     | NULL              |                |
| email      | varchar(100) | NO   | UNI | NULL              |                |
| created_at | timestamp    | YES  |     | CURRENT_TIMESTAMP |                |
+------------+--------------+------+-----+-------------------+----------------+

4.3 Tabellen auflisten

To list the tables that exist in the current database, run the SHOW TABLES command.

SHOW TABLES;

Example output:

+------------------+
| Tables_in_mydb   |
+------------------+
| users            |
| products         |
| orders           |
+------------------+

4.4 Tabelle löschen

To delete a table you no longer need, use the DROP TABLE command.

DROP TABLE users;

4.4.1 Wichtige Hinweise beim Löschen einer Tabelle

  • Vorsicht: Das Löschen einer Tabelle entfernt die Daten dauerhaft!
  • Um Fehler beim Löschen zu vermeiden, fügen Sie IF EXISTS hinzu.
    DROP TABLE IF EXISTS users;
    
Meldung bei Erfolg
Query OK, 0 rows affected (0.01 sec)

4.5 Tabellendaten zurücksetzen (Alle Zeilen löschen)

If you want to keep the table structure but delete only the data inside, use TRUNCATE TABLE.

TRUNCATE TABLE users;
Unterschied zu DROP TABLE
  • DROP TABLE löscht die Tabelle selbst.
  • TRUNCATE TABLE löscht nur die Daten und behält die Tabellenstruktur bei.

4.6 Häufige Fehler und Lösungen

4.6.1 Fehler „Tabelle bereits vorhanden“

Example error:

ERROR 1050 (42S01): Table 'users' already exists
Wie man das Problem behebt
  • Vorhandene Tabellen prüfen
    SHOW TABLES;
    
  • Die Tabelle mit IF NOT EXISTS erstellen
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50) NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    

4.6.2 Fehler „Unbekannte Tabelle“

Example error:

ERROR 1051 (42S02): Unknown table 'users'
Wie man das Problem behebt
  • Überprüfen Sie, ob die Tabelle mit SHOW TABLES; existiert
  • Falls sie nicht existiert, fügen Sie IF EXISTS hinzu
    DROP TABLE IF EXISTS users;
    

4.7 Zusammenfassung

In diesem Abschnitt haben wir die grundlegenden MySQL-Tabellenoperationen behandelt: Erstellen, Überprüfen und Löschen von Tabellen.