MySQL: Installation auf Ubuntu 20.04

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

Dedicated Server von IONOS

Hardware trifft Cloud: Dedicated Server mit Cloud-Integration und mit minutengenauer Abrechnung, inklusive persönlichem Berater!

24/7 Support
Unbegrenzter Traffic
SSL Zertifikat

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:

$ sudo apt update
shell

Schritt 2: MySQL-Server installieren

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

$ sudo apt install mysql-server
shell

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

$ sudo systemctl start mysql.service
shell

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 deaktiviert ist. Um einen Fehler zu umgehen, müssen Sie die Authentifizierungsmethode des Root-Benutzers anpassen.

Starten Sie die MySQL-Eingabeaufforderung:

$ sudo mysql
shell

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

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

Schließen Sie die MySQL-Eingabeaufforderung wieder:

mysql> exit
shell

Führen Sie das Sicherheitsskript aus:

$ sudo mysql_secure_installation
shell

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

$ mysql -u root -p
shell

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

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

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:

$ sudo mysql
shell

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

$ mysql -u root -p
shell

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

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

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:

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

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

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

Schritt 5: Rechte zuweisen

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

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

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

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

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“:

mysql> FLUSH PRIVILEGES;
shell

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

mysql> exit
shell

Melden Sie sich mit Ihrem neuen Usernamen an:

$ mysql -u username -p
shell

Schritt 6: MySQL testen

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

$ systemctl status mysql.service
shell

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:

$ sudo mysqladmin -p -u username version
shell