MySQL zählt zu den ge­frag­tes­ten Open-Source-Da­ten­ban­ken weltweit. Sie besticht durch Per­for­mance, Sta­bi­li­tät sowie Ska­lier­bar­keit und kommt überall zum Einsatz – vom einfachen Web­hos­ting bis hin zu komplexen Business-Lösungen. Wir begleiten dich Schritt für Schritt durch die In­stal­la­ti­on auf Ubuntu 20.04, damit dein Datenbank-Ma­nage­ment glatt läuft.

Welche Vor­aus­set­zun­gen braucht MySQL unter Ubuntu 20.04?

Grund­sätz­lich sind die Hardware-An­for­de­run­gen für MySQL auf Ubuntu 20.04 moderat und lassen sich auf den meisten aktuellen Systemen pro­blem­los erfüllen. Beachte jedoch, dass der tat­säch­li­che Bedarf stark von deinem Projekt abhängt. Wenn du res­sour­cen­in­ten­si­ve An­wen­dun­gen mit großen Da­ten­men­gen oder kom­pli­zier­ten Abfragen betreibst, solltest du bei RAM und CPU nach­bes­sern. Eine großzügig bemessene Fest­plat­te sichert dir zudem den Platz für künftiges Wachstum.

Damit die Kom­mu­ni­ka­ti­on zwischen Server und Clients ein­wand­frei funk­tio­niert, wirf vorab einen Blick auf deine Netzwerk- und Firewall-Kon­fi­gu­ra­ti­on. Wir empfehlen eine statische IP-Adresse für deinen MySQL-Server, um dauerhaft stabile Ver­bin­dun­gen zu ge­währ­leis­ten.

Das sind die Min­dest­an­for­de­run­gen für dein System:

  • Prozessor (CPU): x86-64 Ar­chi­tek­tur, min­des­tens 1 GHz (Dual-Core)
  • Ar­beits­spei­cher (RAM): min­des­tens 1 GB
  • Be­triebs­sys­tem: Ubuntu 20.04, User mit sudo-Rechten
  • Firewall: Port 3306 (MySQL) muss offen sein
  • Spei­cher­platz: min­des­tens 500 MB freier Platz
  • Internet: Er­for­der­lich für Updates und Paket-Downloads

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

Die In­stal­la­ti­on erfolgt unter Ubuntu 20.04 bequem über das Pa­ket­ma­nage­ment APT. Bevor du MySQL produktiv nutzt, ist eine saubere Kon­fi­gu­ra­ti­on wichtig. Dazu gehört unter anderem das Festlegen des Root-Passworts und die Steuerung externer Zugriffe. In dieser Anleitung zeigen wir dir den richtigen Weg.

Schritt 1: Paket-Index auf Stand bringen

Bevor es losgeht, solltest du deine Pa­ket­lis­ten ak­tua­li­sie­ren. Nutze dafür diesen Befehl:

$ sudo apt update
shell

Schritt 2: MySQL-Server in­stal­lie­ren

Starte die In­stal­la­ti­on des MySQL-Pakets via APT:

$ sudo apt install mysql-server
shell

Um si­cher­zu­ge­hen, dass alles aktiv ist, kannst du den Dienst mit systemctl manuell starten:

$ sudo systemctl start mysql.service
shell

Schritt 3: MySQL absichern und kon­fi­gu­rie­ren

Direkt nach der In­stal­la­ti­on ist MySQL noch nicht optimal ab­ge­si­chert. Nutze das mit­ge­lie­fer­te Si­cher­heits-Skript, um wichtige Schutz­maß­nah­men zu treffen. Es hilft dir beim Root-Passwort, löscht anonyme Accounts und schränkt den Fern­zu­griff ein.

Ein kleiner Fall­strick: Das Skript möchte das Passwort des Root-Accounts ändern, der bei Ubuntu stan­dard­mä­ßig anders ge­hand­habt wird. Um Probleme zu vermeiden, passen wir die Au­then­ti­fi­zie­rungs­me­tho­de kurz­zei­tig an.

Öffne zuerst die MySQL-Konsole:

$ sudo mysql
shell

Verwende ALTER USER, um ein Root-Passwort zu setzen:

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

Verlasse die Konsole wieder:

mysql> exit
shell

Starte nun das Si­cher­heits-Skript:

$ sudo mysql_secure_installation
shell

Um dich danach als Root zu au­then­ti­fi­zie­ren, nutzt du:

$ mysql -u root -p
shell

Nachdem das Skript fertig ist, kannst du zur Standard-Methode zu­rück­keh­ren:

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

Damit klappt der Login wieder einfach via sudo mysql.

Schritt 4: Neuen MySQL-User anlegen

Der Root-User hat un­ein­ge­schränk­te Macht über alle Daten und Ein­stel­lun­gen. Für den täglichen Betrieb solltest du aus Si­cher­heits­grün­den eine Nutzerin oder einen Nutzer mit be­grenz­ten Rechten erstellen.

Gehe wieder in die MySQL-Konsole:

$ sudo mysql
shell

Falls ein Passwort aktiv ist, nutze diesen Befehl:

$ mysql -u root -p
shell

Erstelle jetzt das neue Konto:

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

Ersetze „username“ durch deinen Wunsch­na­men und „host“ durch deinen Host (lokal meist localhost). Der Zusatz „WITH au­then­ti­ca­ti­on_plugin“ ist optional. „auth_socket“ bietet hohe Si­cher­heit ohne Pass­wort­zwang beim Login.

Stan­dard­mä­ßig nutzt MySQL heute „caching_sha2_password“. Da ältere PHP-Versionen damit manchmal Probleme haben, kannst du al­ter­na­tiv auf „mysql_native_password“ setzen:

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

Oder du änderst es nach­träg­lich für einen be­stehen­den Account:

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

Schritt 5: Be­rech­ti­gun­gen vergeben

Jetzt legst du fest, was die neue Person darf. Die Syntax sieht so aus:

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

Trennst du Rechte mit Kommas, kannst du mehrere gleich­zei­tig vergeben. Mit einem Sternchen („*“) gelten die Regeln global für alle Tabellen.

Hier ein Beispiel für typische Rechte (Erstellen, Ändern, Löschen sowie Daten be­ar­bei­ten):

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

Mit „WITH GRANT OPTION“ darf dieser User seine Rechte sogar wei­ter­ge­ben.

Aktiviere die Än­de­run­gen, indem du den Cache leerst:

mysql> FLUSH PRIVILEGES;
shell

Beende MySQL:

mysql> exit
shell

Teste den Login mit dem neuen Account:

$ mysql -u username -p
shell

Schritt 6: In­stal­la­ti­on prüfen

Kon­trol­lie­re ab­schlie­ßend, ob der Dienst stabil läuft, zum Beispiel via Systemd:

$ systemctl status mysql.service
shell

Du kannst dich auch direkt einloggen, um die in­stal­lier­te Version zu sehen:

$ sudo mysqladmin -p -u username version
shell
Zum Hauptmenü