MySQL ist eine der be­lieb­tes­ten Open-Source-Da­ten­ban­ken. Sie ist bekannt für ihre Leis­tungs­fä­hig­keit, Zu­ver­läs­sig­keit und Ska­lier­bar­keit und wird in vielen Bereichen ein­ge­setzt, von kleinen Web­hos­ting-Systemen bis hin zu großen Un­ter­neh­mens­an­wen­dun­gen. Wir erklären Ihnen jeden Schritt des In­stal­la­ti­ons­pro­zes­ses von MySQL auf Ubuntu 20.04, damit Sie ein zu­ver­läs­si­ges Da­ten­bank­ver­wal­tungs­sys­tem ein­rich­ten können.

Welche An­for­de­run­gen stellt MySQL für Ubuntu 20.04?

Insgesamt sind die Sys­tem­an­for­de­run­gen 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 Vor­aus­set­zun­gen aber je nach Ein­satz­zweck und dem Umfang der Datenbank variieren können. Wenn Sie bei­spiels­wei­se eine intensive Anwendung ausführen, die große Da­ten­ban­ken oder komplexe Abfragen verwendet, sind höhere RAM- und Prozessor-An­for­de­run­gen er­for­der­lich, um eine bessere Per­for­mance zu ge­währ­leis­ten. Eine groß­zü­gi­ge Fest­plat­ten­ka­pa­zi­tät ist geeignet, um zu­künf­ti­ges Wachstum und zu­sätz­li­che Da­ten­ban­ken zu er­mög­li­chen.

Für eine rei­bungs­lo­se Kom­mu­ni­ka­ti­on zwischen dem MySQL-Server und den Clients sollten außerdem die Netz­werk­kon­fi­gu­ra­ti­on und die Firewall-Ein­stel­lun­gen sorg­fäl­tig überprüft werden. Der MySQL-Server sollte dabei über eine statische IP-Adresse verfügen, um Ver­bin­dungs­pro­ble­me zu vermeiden.

MySQL stellt folgende Min­dest­an­for­de­run­gen an Ihre Hard- und Software:

  • Prozessor (CPU): x86-64 Ar­chi­tek­tur, min. 1 GHz (Dual-Core)
  • Ar­beits­spei­cher (RAM): min. 1 GB
  • Be­triebs­sys­tem: Ubuntu 20.04, sudo-Benutzer mit Root-Rechten
  • Firewall: ge­öff­ne­ter MySQL-Port 3306
  • Fest­plat­ten­spei­cher: min. 500 MB
  • In­ter­net­ver­bin­dung: zum Her­un­ter­la­den von Paketen und Verbinden mit dem MySQL-Server
Dedicated Server
De­di­zier­te Server mit mo­derns­ten Pro­zes­so­ren
  • 100 % En­ter­pri­se-Hardware
  • Kon­fi­gu­rier­ba­re Hardware-Aus­stat­tung
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren

Schritt-für-Schritt-Anleitung: MySQL auf Ubuntu 20.04 ein­rich­ten

MySQL können Sie auf Ubuntu 20.04 mithilfe des Pa­ket­ver­wal­tungs­sys­tems APT (Advanced Package Tool) in­stal­lie­ren. Nach der In­stal­la­ti­on sollten Sie MySQL ein­rich­ten und kon­fi­gu­rie­ren, bevor es für den pro­duk­ti­ven Einsatz verwendet werden kann. In diesem Zu­sam­men­hang 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 ak­tua­li­sie­ren

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 in­stal­lie­ren

In­stal­lie­ren Sie nun das MySQL-Server-Paket mit APT:

$ sudo apt install mysql-server
shell

Um zu über­prü­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 kon­fi­gu­rie­ren

Nach der In­stal­la­ti­on erfüllt MySQL noch nicht die emp­foh­le­nen Si­cher­heits­stan­dards. Um dies zu beheben, bietet MySQL ein Skript an, das die Ein­stel­lun­gen zum Schutz des Servers ändert. So kümmert es sich bei­spiels­wei­se um das Ein­rich­ten des Root-Passworts, die Ent­fer­nung anonymer User und die Ein­schrän­kung von Fern­zu­grif­fen.

Al­ler­dings müssen zur korrekten Aus­füh­rung des Skripts gewisse Vor­keh­run­gen getroffen werden. Denn die Anwendung möchte das Passwort des Root-Accounts ändern, der stan­dard­mä­ßig unter Ubuntu de­ak­ti­viert ist. Um einen Fehler zu umgehen, müssen Sie die Au­then­ti­fi­zie­rungs­me­tho­de des Root-Benutzers anpassen.

Starten Sie die MySQL-Ein­ga­be­auf­for­de­rung:

$ sudo mysql
shell

Benutzen Sie die Anweisung ALTER USER, um ein Passwort für root fest­zu­le­gen:

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

Schließen Sie die MySQL-Ein­ga­be­auf­for­de­rung wieder:

mysql> exit
shell

Führen Sie das Si­cher­heits­skript aus:

$ sudo mysql_secure_installation
shell

Um sich als Root-Benutzer bzw. -Be­nut­ze­rin zu au­then­ti­fi­zie­ren, geben Sie Folgendes ein:

$ mysql -u root -p
shell

Nach Be­en­di­gung des Skripts können Sie die Stan­dardau­then­ti­fi­zie­rungs­me­tho­de 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 In­stal­la­ti­on von MySQL erschafft einen Root-Benutzer, der über alle Pri­vi­le­gi­en für den MySQL-Server verfügt und die komplette Kontrolle über jegliche Da­ten­ban­ken, Tabellen und Nutzenden besitzt. Zur Erhöhung der Si­cher­heit sollten Sie daher einen User mit ein­ge­schränk­ten Rechten anlegen.

Rufen Sie dazu die MySQL-Ein­ga­be­auf­for­de­rung auf:

$ sudo mysql
shell

Wenn als Au­then­ti­fi­zie­rungs­me­tho­de ein Passwort ein­ge­stellt ist, verwenden Sie folgenden Ausdruck:

$ mysql -u root -p
shell

Legen Sie nun einen neuen Benutzer bzw. eine neue Be­nut­ze­rin für MySQL an:

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

Geben Sie statt „username“ Ihren Be­nut­zer­na­men und statt „host“ den Namen Ihres Hosts an. Wenn Sie Ubuntu lokal ausführen, schreiben Sie localhost. Der Ausdruck „WITH au­then­ti­ca­ti­on_plugin“ ist optional. Das Plugin „auth_socket“ verfügt über starke Si­cher­heits­ein­stel­lun­gen und benötigt kein Passwort zum Einloggen.

Ist nichts anderes spe­zi­fi­ziert, verwendet MySQL das „caching_sha2_password“-Plugin zur Au­then­ti­fi­zie­rung. Manche Versionen von PHP sind damit al­ler­dings nicht kom­pa­ti­bel. Statt­des­sen 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 be­stehen­den User:

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

Schritt 5: Rechte zuweisen

Bestimmen Sie jetzt, welche Pri­vi­le­gi­en der neue Nutzer bzw. die neue Nutzerin haben soll. Die all­ge­mei­ne Syntax hierfür lautet:

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

Mehrere Pri­vi­le­gi­en werden mit einem Komma getrennt. Um die Rechte global an­zu­wen­den, tauschen Sie „database.table“ jeweils mit einem Sternchen („*“) aus.

Im folgenden Beispiel geben wir einem User die Rechte, Da­ten­ban­ken zu erstellen (CREATE), zu mo­di­fi­zie­ren (ALTER), zu löschen (DROP) und Daten in eine Tabelle ein­zu­fü­gen (INSERT), aus­zu­wäh­len (SELECT), zu ak­tua­li­sie­ren (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 PRI­VI­LE­GES“:

mysql> FLUSH PRIVILEGES;
shell

Danach können Sie die MySQL-Ein­ga­be­auf­for­de­rung schließen:

mysql> exit
shell

Melden Sie sich mit Ihrem neuen Usernamen an:

$ mysql -u username -p
shell

Schritt 6: MySQL testen

Über­prü­fen Sie, dass MySQL korrekt aus­ge­führt wird, z. B. mit dem Sys­tem­ma­na­ger Systemd:

$ systemctl status mysql.service
shell

Al­ter­na­tiv 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
Zum Hauptmenü