MySQL Server auf Ubuntu Server 22.04.04 LTS

Ich habe mir letzte Woche auf Ubuntu Server 22.04.04 LTSeinen MySQL-Server installiert. Das funktioniert auch recht einfach:

# Update
sudo apt-get update
sudo apt-get upgrade -y
# MySQL Server installation
sudo apt install mysql-server -y
sudo systemctl status mysql.service

Wo ich etwas verwundert war und auch laenger gebraucht habe, war mit der Verbindung per Workbench (Client GUI) zu dem Server. Denn die Installation von Ubuntu scheint so konfiguriert zu sein, das ein Zugriff von auszen unterbunden wird und es liegt nicht an der Firewall, denn diese ist per default inaktiv.

Daher habe ich in der Datei /etc/mysql/mysql.conf.d/mysql.cnf` folgendes hinzugefuegt, damit der Server nicht nur auf localhost laeuft:

#
# The MySQL database client configuration file
#
# Ref to https://dev.mysql.com/doc/refman/en/mysql-command-options.html

[mysql]
bind_address=0.0.0.0

Danach das Service mit sudo systemctl restart mysql.service neugestarten. Jetzt noch einen User anlegen, der von auszen zugreifen darf:

sudo mysql -u root -p
# Eingabe des Passwords von der Installation (root Passwort)
CREATE USER meinuser@'%' IDENTIFIED BY 'meinpassword';
GRANT ALL ON *.* TO meinuser WITH GRANT OPTION;

meinuser und meinpasswort muss natuerlich angepasst werden.
In der Workbench muss man dann bei Connection Method Standard TCP/IP over SSH auswaehlen und dann entsprechend die Felder ausfuellen, also Server IP, den User der SSH-Zugriff hat und das Passwort in Store in Vault... speichern. Dann die Daten fuer den MySQL Hostname sowie den Port 3306 welcher der Standardport ist. Diesen kann man natuerlich auch veraendern (der Portmuss allerdings Serverseitig ebenfalls angepasst werden, wenn man einen anderen als 3306 verwenden moechte). Danach den angelegten User eintragen und wieder dessen Passwort in Passwort in Store in Vault... eintragen. Aus Sicherheitsgruenden sollte das Passwort und der Benutzername fuer den System User nicht das gleiche sein wie fuer den MySQL Datenbank Server.

Das Ganze hat mich einiges an Zeit gekostet, da ich nicht wusste wie das bei Ubuntu ablaeuft. Vielleicht ist es bei andere Distributionen mittlerweile auch so. Das letzte Mal (schon einige Zeit her) als ich noch unter CentOS mal einen MySQL-Server installiert hatte, war das definitiv nicht so.

Ich habe neben zweier lokaler Test-VMs diese Server <> Client Umgebung installiert. Hier will ich das Gelernte aus verschiedener Buecher ueben. Das sind die Buecher "Einstieg in Python" und "Datenbanksysteme". Ggf. auch fuer "Einsteig in PHP8 und MySQL", aber ich denke, da werde ich mir noch gesondert etwas installieren muessen. Ich habe die Buecher verlinkt, vor allem die ersten beiden kann ich empfehlen, das letztere Buch habe ich noch nicht angefangen.

Ziel von diesem Text hier ist eigentlich nur, dass ihr euch ggf. die Zeit sparrt, wenn ihr euch wundert warum ich nicht einfach eine Verbindung aufbauen koennt. Wer nur local installiert und probiert, wird auf dieses Problem nicht stoszen. Diese Loesung hier ist nicht fuer den Internetbetrieb tauglich, hier sollte man weiter absichern und das System entsprechend konfigurieren. Ggf. liege ich auch mit der Vermutung falsch hinsichtlich Ubuntu, aber out of the box hat es bei mir nicht funktioniert, auch nicht nach mehrmaligen probieren.