Externer Zugriff auf MySQL Server

Veröffentlicht am 20.09.2007 | Kommentar schreiben | Tags: php, mysql

In diesem Artikel wird beschrieben, wie man den externen Zugriff auf einen MySQL Server freischaltet und konfiguriert.

Normalerweise wird auf einen MySQL Server per localhost zugegriffen, da Web- und Datenbankserver auf dem gleichen Server laufen. Lagert man jedoch die Datenbank auf einen externen Server aus, so muss man diese erst für den externen Zugriff konfigurieren.

Hinweis: Diese Einstellungen für den MySQL Server sind nur mit root Rechten durchführbar.

MySQL Konfigurationsdatei my.conf

In der my.conf, diese liegt normalerweise in /etc/, wird folgender Code hinzugefügt:

bind-address 0.0.0.0 # offen für alle Adressen
bind-address 127.0.0.1 # nur localhost
bind-address 192.168.xxx.xxx # nur über die locale IP
bind-address 123.456.689.101 # nur über diese statische IP

In diesem Beispiel Code werden mehrere Möglichkeiten für bind-address gezeigt, es genügt eine Zeile.

Jetzt müssen in den Tabellen user und db diese Einstellungen noch angepasst werden. Diese Tabellen sind Konfigurationstabellen des MySQL Servers und nur mit root-Rechten erreichbar. Für den Benutzer, mit dem man sich auf den MySQL Server verbinden möchte, werden die Einträge in diesen Tabellen in der Spalte host auf den Host geändert, von dem aus zugegriffen werden soll.

Weitere Konfigurationsmöglichkeiten findet man unter http://dev.mysql.com/doc/refman/5.1/de/connection-access.html.

MySQL Server neustarten

Anschließen muss der MySQL Server noch neugestartet werden, dies geht über die Shell-Console entweder mit:

shell > /etc/init.d/mysql reload

oder mit:

shell > /etc/init.d/mysql restart

Server mit Plesk

Wenn man auf einem Server mit Plesk arbeitet, so heißt der Benutzer mit root-Rechten nicht root, sondern admin. Folgende Befehle müssen zum Neustart des MySQL Servers ausgeführt werden:

shell > /etc/init.d/mysql -u admin -ppassword
mysql > restart

Sicherheitshinweis

Sobald man den MySQL Server nach außen hin öffnet, existiert eine Schwachstelle die Angreifer ausnutzen können.

[Danke an nirgendwer]

Zurück zur Artikel-Übersicht


Kommentare

  1. Hugo Hinkebein schrieb am 04.12.2007 um 09:41 Uhr
    Nicht ideal, eine DB einfach nach außen zu öffnen. Besser einen SSH-Tunnel verwenden.
  2. andrey schrieb am 11.01.2009 um 00:58 Uhr
    Beim Plesk stimmt nicht ganz
    Richtig wäre
    /etc/init.d/mysqld restart (start|stop|restart)
    zumindest beim plesk 8.4
  3. nirgendwer schrieb am 02.09.2009 um 12:08 Uhr
    Oh, böser Fehler.
    > bind-address 0.0.0.0 # deaktiviert

    Das stimmt nicht, ganz im Gegenteil. Der Adresse 0.0.0.0 steht allgemein für alle Adressen/Interfaces. Er lauscht so also "überall".

    Siehe: http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_bind-address
  4. Herr Schlauberger schrieb am 30.11.2010 um 17:58 Uhr
    bind-address = 192.168.xxx.xxx
    läuft so nicht und der MySQL-Demon lässt sich nicht starten.
    Es lässt sich tatsächlich nur eine IP binden. Oder man macht mit
    bind-address = 0.0.0.0
    ganz auf und steuert den Zugriff über iptables.

*


*

Letzte Artikel

Letzte Kommentare

  • tommyiscrazy ...danke schön für die Anleitung: Auf Vista Home nun uneingeschränkte Rechte :-)
  • lukas hallo,ich habe windows vista home ... und alle beiden varianten ausprobiert ...
  • Nino Guter Tip. Hat mir sehr geholfen. Vielen Dank.Grüße
  • Mike Danke für die Anleitung. In meinem Fall war es aber notwendig, das ...
  • bahman i don't now German, but that was the best Dijkstra implementation I've seen so ...
  • Hana Hallo, ich habe Vista Home und möchte Home Office 2010 testen. Download war ...
  • Joerg Danke für die korrekte und nachvollziehbare Anleitung. Endlich ein True Admin ...