Auf den meisten Webspaces ist zum Verwalten der MySQL-Datenbank
phpMyAdmin vorhanden. Das ist ein phantastisches Tool, das mit dem Webbrowser nahezu alle Aufgaben rund um die eigene Datenbank erschlägt. Aufgrund der Tatsache, dass ein Browser benutzt wird, ist es manchmal etwas "hakelig" Verwaltungsaufgaben zu erledigen.
Wenn man auf seinem Webspace einen SSH-Zugang hat oder einen root-Server betreibt und MySQL nicht von aussen zugreifbar haben möchte (gute Idee!), kann man damit wahre Wunderdinge bewegen.
Zum einen sind die auf dem Server installierten Tools benutzbar, was wiederrum nicht jedermanns Sache ist.
Alternativ dazu kann man auch jeden lokal (!) installierten Client verwenden. Dazu baut man einen SSH-Tunnel auf. Das geht über
ssh -L 12345:localhost:3306 user@server
Das "-L" gibt an, von wo der Tunnel benutzt werden kann (so merke ich mir das), nämlich von Links, von der lokalen Maschine zur entfernten Maschine (Rechts). Der lokale Port 12345 wird via SSH-Tunnel an den entfernten Port 3306 weitergeleitet. Spendiert man der Zeile noch ein "-g", so kann der lokale Rechner als Proxy für andere Rechner verwendet werden.
Ab jetzt ist es möglich via Port 12345 auf der lokalen Maschine auf die entfernte Datenbank zuzugreifen.
Eine Klippe gilt es aber noch zu umschiffen. Die Tools von MySQL wollen Datenbanken, die auf localhost laufen immer via Socket verbinden. Das kann für die entfernte Datenbank natürlich nicht funktionieren.
mysql --protocol=tcp -P 12345 -u user -p
funktioniert aber bestens. Bei den grafischen Tools ist anstelle von "localhost" die IP-Adresse "127.0.0.1" einzutragen, dann wird auch dort TCP benutzt.
Ich mag die MySQL-Tools allerdings gar nicht so sehr. Daher nutze ich den
SQuirreL SQL Client, den ich im neuen Job schätzen und lieben gelernt habe. Das ist eine Java-Anwendung, die die Syntax von verschiedenen SQL-Dialekten schon via Plugin dabei hat (darunter DB2, Oracle, MySQL, Sybase und einige andere mehr). Das, was noch zu tun ist, ist den jdbc-Treiber in das lib-Verzeichnis zu kopieren und schon können entsprechende Datenbanken verwendet werden.
In unserem Beispiel sorgt
jdbc:mysql://localhost:12345/datenbank
für die Verbindung zur Datenbank mit dem Namen Datenbank.