# MySQL Socket auf anderen Server leiten



## fanste (24. Juli 2009)

Guten Abend,

bei unserem Community-Webspace-Projekt sind wir momentan dabei die Serverstruktur etwas umzubauen. Es kommen nun 2 Server zum Einsatz, die im weiteren S1 und S2 genannt werden. (Beide laufen mit Debian Lenny)

S1 hat folgende aufgaben:
 - Apache für das Portal/die Community sowie einigen kleineren Hosts
 - Bind zur Auflösung der (Sub-)Domains (Ob S1 oder S2)

S2 soll folgendes verwalten:
 - Apache für die Userspaces
 - MySQL für S1 und S2
 - FTP für die User

Nun haben wir vor, dass auf S1 auch als Host für Datenbankverbindungen einfach "localhost" angegeben werden kann. Da PHP, wenn ich richtig informiert bin, immer die mysql.sock - Datei für die Verbindung verwendet, müsste man diese irgendwie auf die IP-Adresse des anderen Servers umleiten. Ich habe vor einiger Zeit dazu schon einmal etwas gefunden, ich weiß nur absolut nicht mehr, wie das geht bzw. mit welchem Programm.

Kann mir hier einer einen Tipp dafür geben?

Im gleichen Zuge wäre es noch interessant zu wissen, ob es eine gute Alternative zu Bind gibt, bei dem man ohne Neustart des DNS neue Einträge hinzufügen kann.

Danke schonmal für kommende Tipps.


----------



## Matthias Reitinger (24. Juli 2009)

fanste hat gesagt.:


> Nun haben wir vor, dass auf S1 auch als Host für Datenbankverbindungen einfach "localhost" angegeben werden kann.


Wieso sollte man das tun wollen?



fanste hat gesagt.:


> Da PHP, wenn ich richtig informiert bin, immer die mysql.sock - Datei für die Verbindung verwendet, müsste man diese irgendwie auf die IP-Adresse des anderen Servers umleiten.


Wieso nicht gleich die IP-Adresse des anderen Servers angeben? Auf ein lokales Socket wird nur zugegriffen, wenn man das explizit angibt oder wenn man versucht, sich zu localhost zu verbinden.

Grüße, Matthias


----------



## fanste (24. Juli 2009)

Es sind einige User dabei die keinen Plan davon haben und irgendwelche Fertigsysteme verwenden. Wenn die dann anfangen müssen die MySQL-Daten zu ändern, brechen die uns zusammen 

Ich hatte dafür schonmal etwas, aber ich weiß leider nimmer wie das hieß


----------



## Matthias Reitinger (25. Juli 2009)

fanste hat gesagt.:


> Ich hatte dafür schonmal etwas, aber ich weiß leider nimmer wie das hieß


Du könntest natürlich von S1 nach S2 einen SSH-Tunnel aufmachen, der Anfragen von S1 auf den lokalen Port 3306 (Standardport von MySQL) zum entfernten Port von S2 weiterleitet. Ideal ist das nicht, aber es würde wohl funktionieren.

Grüße, Matthias


----------



## fanste (25. Juli 2009)

Hmm, ich hab da irgendwas anderes in Erinnerung. Vielleicht hat ja noch jemand den passenden Einfall. Werde auch noch eine Weile die SuMa befragen. Noch scheine ich nicht die richtigen Stichworte zu nutzen.

Ansonsten muss entweder das herhalten, oder die User müssen sich doch einmal anstrengen.


----------



## Dr Dau (25. Juli 2009)

Hallo!





fanste hat gesagt.:


> Wenn die dann anfangen müssen die MySQL-Daten zu ändern, brechen die uns zusammen


Müssen sie doch eh machen..... sie müssen doch zumindest ihren Benutzernamen und Passwort entsprechend angeben.
Oder hast Du MySQL offen wie ein Scheunentor?! 
Da kann es doch nicht zu viel verlangt sein auch noch den Host anzugeben..... zumindest in PHP ist es doch ein Abwasch. 

Dann noch skip-networking deaktivieren und bei den Hosts in MySQL für die Zugriffsrechte der User mit Wildcards arbeiten.
Anstatt den Usern nur Zugriff per localhost zu geben, gibst Du ihnen also Zugriff z.B. per 192.168.0.* (die Server befinden sich doch im gleichen Netzwerk?).
So findet die Verbindung zwar per TCP/IP statt, aber Socketverbindungen funktionieren ja eh nur auf Systemebene (keine Ahnung ob man dieses Problem per Tunnel umgehen könnte).

Gruss Dr Dau


----------

