Grundwissen zu MySQL & Co: Was ist ein Localhost?
Veröffentlicht am 10.07.2023 von DomainFactory
Sobald es um Netzwerkkonfiguration, Webseiten oder Datenbanken geht, taucht er irgendwann auf – der ominöse Localhost. Doch was verbirgt sich eigentlich dahinter und wann und wofür braucht man ihn? Wir lösen den Localhost und somit auch das Rätsel um ihn auf!
Geht es um das Internet, sind uns Domains sehr vertraut. Wer Google, Amazon und Co. besuchen möchte, gibt in der Adresszeile des Webbrowsers schließlich keine sperrigen IP-Adressen, sondern zugängliche Namen ein. Das erleichtert das Surfen ungemein und macht das Internet vertrauter.
Zugängliches Internet dank Domains und DNS-Servern
Letztendlich ist eine Domain wie google.de aber nichts anderes als ein Synonym für die IP-Adresse, die sich dahinter verbirgt. Gibt man die Domain ein, wird sie an einen DNS-Server (Domain Name System) geleitet. Dieser Server durchforstet dann alle hinterlegten Einträge (Records) und findet schließlich eine passende IP-Adresse des Webservers. An diese IP-Adresse wird die ursprüngliche Anfrage schließlich weitergeleitet – die Domain wurde erfolgreich "aufgelöst".
Für den Webseitenbesucher erfolgt dieser Prozess unbemerkt im Hintergrund. Das System funktioniert so gut, dass sich IP-Adressen für Nutzer und Administratoren im Alltag nahezu vollständig der Wahrnehmung entziehen. Mailserver, Datenbankserver und sogar DNS-Server werden über menschenlesbare Domains statt Folgen von Ziffern und Punkten (IP-Adressen) adressiert.
Localhost macht's möglich: Zugriff auf die lokale MySQL- und andere Datenbanken
Der Aufruf einer Internetseite ist ein klassisches Beispiel für die Kommunikation mit einem externen Server. In einigen Fällen ist es jedoch auch nötig, einen Dienst oder eine Datenbank auf dem gleichen Server anzusprechen – der Server fragt also im Grunde bei sich selbst an. Soll beispielsweise eine Webseite Informationen von einem Datenbankserver auf dem selben System beziehen, so ist das ein lokaler Zugriff. Das ist typischerweise der Fall, wenn man bei einem Webhosting-Anbieter einen Server mietet und darauf seine gesamte Webpräsenz betreibt.
Die Kommunikation mit einem Datenbankserver setzt neben den korrekten Zugangsdaten auch voraus, dass ein Host definiert ist. Das kann ein entfernter Server oder eben das lokale System sein. Für eine lokale Verbindung gibt es die standardisierte IP-Adresse 127.0.0.1. Liest sich etwas sperrig, oder? Die Lösung: Der “localhost” Er ersetzt die kryptische Sequenz aus Ziffern und Punkten. In der Netzwerkumgebung repräsentiert er den lokalen Rechner.
MySQL und andere Datenbanken: Mehr Sicherheit durch lokale Isolation per localhost
Eine Einschränkung eines Dienstes auf lokale Zugriffe kann durchaus Sinn machen. So lassen sich beispielsweise Datenbankserver isolieren, was unberechtigte Zugriffe vermeidet. Ist der Datenbankserver so konfiguriert, dass er nur Anfragen vom localhost akzeptiert, schirmt das potenzielle Angreifer ab. Wer beispielsweise eine neue Datenbank bei seinem Webhosting-Provider aufsetzt, darf daher häufig auch gleich entscheiden, ob Zugriffe auf den localhost begrenzt oder aus dem gesamten Internet möglich sein sollen. Sollten Webserver und Datenbankserver auf dem gleichen System installiert sein, empfiehlt es sich die Verbindung auf lokale Zugriffe zu beschränken.
Unterschiedliche Dienste auf dem gleichen System werden über verschiedene Ports angesprochen. Die Kombination aus localhost, einem Doppelpunkt und dem gewünschten Port spricht dann direkt den gewünschten Dienst an. So steht der Port 80 typischerweise für eine HTTP Verbindung, während eine MySQL-Datenbank häufig über den Port 3306 angesprochen wird.
Welche Ports sonst noch typisch sind und wofür man sie verwendet, verraten wir in der folgenden Übersicht.
Die wichtigsten Ports und ihre typische Verwendung mit localhost
- Port 80, 8080, 8081, 443: Entsprechen dem Zweck von Port 80 und werden in der Regel für Anfragen an den lokalen Webserver verwendet. Über diesen Port werden also beispielsweise HTML-Seiten abgerufen.
- Port 3306: MySQL-Server nutzen in der Regel diesen Port für die Kommunikation. (Datenbankserver).
- Port 5432: PostgreSQL-Server nutzen standardmäßig Port 5432. (Datenbankserver).
- Port 21: Dieser Port ist auf den meisten Systemen für einen FTP-Server reserviert.
- Port 22: Port 22 ist der Standardport für eine sichere Verbindung via SSH. Da SSH-Verbindungen unter anderem für die Serveradministration verwendet werden, gelten Sie auch als Einfallstor für Hacker. Eine empfehlenswerte Sicherheitsmaßnahme ist es daher, SSH über die Serverkonfiguration auf einem anderen Port verfügbar zu machen – das sperrt ungebetene Gäste aus.
Seltene Ports wie 5000, 4000 oder 3000 haben auf unterschiedlichen Systemen meistens diverse Aufgaben. Das kann auch von der Anwendung abhängen, die über individuelle Ports ansprechbar sind.
Wird versucht, einen Dienst über den localhost zu erreichen, kann es zu unterschiedlichen Fehlermeldungen kommen. Nicht immer ist dabei sofort klar, was die Fehlerursache sein könnte. Die folgenden drei Fehlermeldungen kommen dabei jedoch so oft in ähnlicher Art und Weise vor, dass sich der Fehler meist relativ schnell eingrenzen lässt.
Häufige Fehlermeldungen in Verbindung mit dem localhost
- Access denied for user root localhost
Diese Fehlermeldung tritt häufig auf, wenn eine lokale Verbindung zum Datenbankserver (MySQL, MariaDB etc.) fehlschlägt. Bei vielen Standardkonfigurationen kann der System-Benutzer "root" auch für Datenbank-Verbindungen verwendet werden. Die Fehlerquelle ist meistens ein falsches oder nicht gesetztes Passwort. - localhost hat die Verbindung abgelehnt
Ein solcher Fehler entsteht, wenn beispielsweise ein Port gesperrt ist. Auch wenn der Standard-Port für einen Dienst wie SSH umkonfiguriert wurde (wie oben empfohlen), kommt es zu einem solchen Fehler. In dem Fall schlägt ein Verbindungsversuch über den Standard-Port fehl, weil der Host die Kommunikation verweigert. - localhost nicht erreichbar oder beim Verbinden mit localhost trat ein Fehler auf
Der gewünschte Dienst kann über den localhost nicht erreicht werden. Wird beispielsweise über den Webbrowser eine HTML-Datei abgerufen, obwohl der Webserver-Dienst auf dem System nicht gestartet ist, kommt es zu dieser Rückmeldung.
Titelmotiv: Photo by Rubaitul Azad on Unsplash