# MySQL: Installation auf Ubuntu 20.04

[MySQL](https://www.ionos.de/digitalguide/server/knowhow/was-ist-mysql/ "Was ist MySQL?") ist eine der beliebtesten Open-Source-Datenbanken. Sie ist bekannt für ihre **Leistungsfähigkeit, Zuverlässigkeit und Skalierbarkeit** und wird in vielen Bereichen eingesetzt, von kleinen Webhosting-Systemen bis hin zu großen Unternehmensanwendungen. Wir erklären Ihnen jeden Schritt des Installationsprozesses von MySQL auf Ubuntu 20.04, damit Sie ein zuverlässiges Datenbankverwaltungssystem einrichten können.

## Welche Anforderungen stellt MySQL für Ubuntu 20.04?

Insgesamt sind die Systemanforderungen für MySQL auf Ubuntu 20.04 relativ niedrig und sollten auf den meisten modernen Desktop- oder Server-Systemen erfüllt werden können. Es ist wichtig zu beachten, dass die Voraussetzungen aber je nach Einsatzzweck und dem Umfang der Datenbank variieren können. Wenn Sie beispielsweise eine intensive Anwendung ausführen, die **große Datenbanken oder komplexe Abfragen** verwendet, sind höhere RAM- und Prozessor-Anforderungen erforderlich, um eine bessere Performance zu gewährleisten. Eine großzügige Festplattenkapazität ist geeignet, um zukünftiges Wachstum und zusätzliche Datenbanken zu ermöglichen.

Für eine reibungslose Kommunikation zwischen dem MySQL-Server und den Clients sollten außerdem die **Netzwerkkonfiguration und die Firewall-Einstellungen** sorgfältig überprüft werden. Der MySQL-Server sollte dabei über eine statische IP-Adresse verfügen, um Verbindungsprobleme zu vermeiden.

MySQL stellt folgende Mindestanforderungen an Ihre Hard- und Software:

- **Prozessor (CPU)**: x86-64 Architektur, min. 1 GHz (Dual-Core)
- **Arbeitsspeicher (RAM)**: min. 1 GB
- **Betriebssystem**: Ubuntu 20.04, sudo-Benutzer mit Root-Rechten
- **Firewall**: geöffneter MySQL-Port 3306
- **Festplattenspeicher**: min. 500 MB
- **Internetverbindung**: zum Herunterladen von Paketen und Verbinden mit dem MySQL-Server

## Schritt-für-Schritt-Anleitung: MySQL auf Ubuntu 20.04 einrichten

MySQL können Sie auf Ubuntu 20.04 mithilfe des Paketverwaltungssystems APT (Advanced Package Tool) installieren. Nach der Installation sollten Sie MySQL einrichten und konfigurieren, bevor es für den produktiven Einsatz verwendet werden kann. In diesem Zusammenhang müssen Sie unter anderem das **Root-Passwort und den Zugriff für externe Clients festlegen**. Wir zeigen Ihnen in unserem Tutorial Schritt für Schritt, wie Sie vorgehen können.

### Schritt 1: Paket-Index aktualisieren

Im ersten Schritt ist es ratsam, die Liste der Pakete auf den neuesten Stand zu bringen. Führen Sie dazu folgenden Befehl aus:

```shell
$ sudo apt update
```

### Schritt 2: MySQL-Server installieren

Installieren Sie nun das MySQL-Server-Paket mit **APT**:

```shell
$ sudo apt install mysql-server
```

Um zu überprüfen, dass der Server auch wirklich läuft, können Sie ihn manuell mit dem Kommando **systemctl** starten:

```shell
$ sudo systemctl start mysql.service
```

### Schritt 3: MySQL konfigurieren

Nach der Installation erfüllt MySQL noch nicht die empfohlenen Sicherheitsstandards. Um dies zu beheben, bietet MySQL ein Skript an, das die **Einstellungen zum Schutz des Servers** ändert. So kümmert es sich beispielsweise um das Einrichten des Root-Passworts, die Entfernung anonymer User und die Einschränkung von Fernzugriffen.

Allerdings müssen zur korrekten Ausführung des Skripts gewisse Vorkehrungen getroffen werden. Denn die Anwendung möchte das Passwort des Root-Accounts ändern, der standardmäßig unter [Ubuntu](https://www.ionos.de/digitalguide/server/knowhow/ubuntu-das-linux-system-fuer-jedermann/ "Die Ubuntu Linux-Distribution") deaktiviert ist. Um einen Fehler zu umgehen, müssen Sie die **Authentifizierungsmethode des Root-Benutzers** anpassen.

Starten Sie die MySQL-Eingabeaufforderung:

```shell
$ sudo mysql
```

Benutzen Sie die Anweisung **ALTER USER**, um ein Passwort für root festzulegen:

```shell
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
```

Schließen Sie die MySQL-Eingabeaufforderung wieder:

```shell
mysql> exit
```

Führen Sie das Sicherheitsskript aus:

```shell
$ sudo mysql_secure_installation
```

Um sich als Root-Benutzer bzw. -Benutzerin zu authentifizieren, geben Sie Folgendes ein:

```shell
$ mysql -u root -p
```

Nach Beendigung des Skripts können Sie die Standardauthentifizierungsmethode wieder ändern:

```shell
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
```

Dadurch sind Sie wieder in der Lage, sich mit dem Befehl **sudo mysql** zu verbinden.

### Schritt 4: MySQL-Benutzer anlegen

Die Installation von MySQL erschafft einen Root-Benutzer, der über alle Privilegien für den MySQL-Server verfügt und die komplette Kontrolle über jegliche Datenbanken, Tabellen und Nutzenden besitzt. Zur Erhöhung der Sicherheit sollten Sie daher einen **User mit eingeschränkten Rechten** anlegen.

Rufen Sie dazu die MySQL-Eingabeaufforderung auf:

```shell
$ sudo mysql
```

Wenn als Authentifizierungsmethode ein Passwort eingestellt ist, verwenden Sie folgenden Ausdruck:

```shell
$ mysql -u root -p
```

Legen Sie nun einen neuen Benutzer bzw. eine neue Benutzerin für MySQL an:

```shell
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
```

Geben Sie statt „username“ Ihren Benutzernamen und statt „host“ den Namen Ihres Hosts an. Wenn Sie Ubuntu lokal ausführen, schreiben Sie **localhost**. Der Ausdruck „WITH authentication\_plugin“ ist optional. Das Plugin „auth\_socket“ verfügt über starke Sicherheitseinstellungen und benötigt kein Passwort zum Einloggen.

Ist nichts anderes spezifiziert, verwendet MySQL das „caching\_sha2\_password“-Plugin zur Authentifizierung. Manche Versionen von PHP sind damit allerdings nicht kompatibel. Stattdessen können Sie das ältere, aber bewährte Plugin „mysql\_native\_password“ einsetzen:

```shell
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
```

Oder Sie verwenden die Funktion „ALTER“ bei einem bestehenden User:

```shell
mysql> ALTER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
```

### Schritt 5: Rechte zuweisen

Bestimmen Sie jetzt, welche Privilegien der neue Nutzer bzw. die neue Nutzerin haben soll. Die allgemeine Syntax hierfür lautet:

```shell
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
```

Mehrere Privilegien werden mit einem Komma getrennt. Um die Rechte **global** anzuwenden, tauschen Sie „database.table“ jeweils mit einem Sternchen („\*“) aus.

Im folgenden Beispiel geben wir einem User die Rechte, Datenbanken zu erstellen (CREATE), zu modifizieren (ALTER), zu löschen (DROP) und Daten in eine Tabelle einzufügen (INSERT), auszuwählen (SELECT), zu aktualisieren (UPDATE) und zu entfernen (DELETE).

```shell
mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'user'@'host' WITH GRANT OPTION;
```

Mithilfe von „WITH GRANT OPTION“ kann der Nutzer bzw. die Nutzerin seine bzw. ihre Rechte auch an andere vergeben.

Leeren Sie nun den Cache mit „FLUSH PRIVILEGES“:

```shell
mysql> FLUSH PRIVILEGES;
```

Danach können Sie die MySQL-Eingabeaufforderung schließen:

```shell
mysql> exit
```

Melden Sie sich mit Ihrem neuen Usernamen an:

```shell
$ mysql -u username -p
```

### Schritt 6: MySQL testen

Überprüfen Sie, dass MySQL korrekt ausgeführt wird, z. B. mit dem Systemmanager **Systemd**:

```shell
$ systemctl status mysql.service
```

Alternativ können Sie sich mit der MySQL-Datenbank verbinden. Der folgende Befehl führt zum Einloggen in MySQL und zum Anzeigen der Server-Version:

```shell
$ sudo mysqladmin -p -u username version
```


This is a markdown version of: [https://www.ionos.de/digitalguide/websites/web-entwicklung/mysql-auf-ubuntu-2004/](https://www.ionos.de/digitalguide/websites/web-entwicklung/mysql-auf-ubuntu-2004/) for AI/LLM consumption.