PDA

Bekijk Volledige Versie : localhost verwijzen naar database server



eweps
17/10/07, 16:47
Beste mensen,

Ik en een collega zijn op zoek naar een oplossing om de standaard localhost die je gebruikt om verbinding met een database op de server te maken te wijzigen naar een ander IPadres.

Het doel hiervan is om standaard php scripts die staan ingesteld op localhost verbinding te laten maken met een externe database server.

Het schijnt dat het is in te stellen in my.cnf dmv bind-address. Maar tot op heden hebben we het met testen en op google nog niet werkend kunnen krijgen. Wanneer in het php script een direct ipadres wordt opgegeven van de database server werkt het wel.

Systeemgegevens:
CentOS 4.5
DirectAdmin
MySQL 5+
PHP 5+
draait op VMware

Database server draait op een zelfde configuratie op dezelfde fysieke server, echter andere VPS en ander IPadres.

Alvast bedankt.

D. ter Horst
17/10/07, 17:00
Dat gaat niet voor zover ik weet omdat 'localhost' een verwijzing is in je host file. Je kunt het doormappen, maar al het andere wat 'localhost' gebruikt gaat dan ook naar je database server. Misschien is er een andere oplossing, maar dan zul je denk ik meer in de richting van je webserver/PHP moeten gaan zoeken, iets dat dat 'rewrite'.

Het bind verhaal wil zeggen: Standaard is het iets van bind 127.0.0.1, wat wil zeggen dat MySQL alleen request wil afhandelen die van 127.0.0.1 komen. Wil je ook request vanaf een ander IP, dan dien je 127.0.0.1 te veranderen naar een extern IP, en als ik het goed onthouden heb kun je ook 0.0.0.0 gebruiken om MySQL op alle adressen te laten luisteren.

eweps
17/10/07, 17:33
Oke bedankt voor de toelichting. Zijn er mensen met een andere ervaring of oplossing voor dit probleem?

Volgens mij wordt dit toch al wel gedaan door grote hosters, het lijkt me in elk geval niet het geval dat deze hun klanten connectie laten maken met het directe IPadres.

Alvast bedankt!

Stefan Mensink
17/10/07, 17:40
Je kan natuurlijk in (x)inetd een service maken die dan weer connect op de juiste server. Ik weet niet zeker of dit er efficient is trouwens.

Str@nger
17/10/07, 18:37
Wat ik bij mijn hoster met een externe db-server gebruikt, is een aparte hostname voor de database. Dus ik moet overal (evt handmatig dan) aangeven dat er GEEN verbinding gemaakt moet worden naar localhost, maar naar db.hoster.nl bijv.

eweps
18/10/07, 09:59
Dat geef je in het PHP script zelf aan? Hm dat is helaas geen oplossing, het zou ook moeten kunnen door de localhost naar iets anders te verwijzen.

Een service aanmaken lijkt me ook niet de beste oplossing..

crazycoder
18/10/07, 10:13
localhost = 127.0.0.1

Als je met je scripts naar een andere server wil zal je dat daar in moeten stellen.

Ik weet trouwens niet hoe jullie google gebruiken, maar met de eerste zoekopdracht:
http://lists.mysql.com/internals/34976
edit: zie net dat je nog niet met google heb gezocht????

Als je connect via tcp/ip komt kan je die met iptables forwarden naar een andere host..

eweps
18/10/07, 11:27
Zeer zeker wel met google gezocht, ook via de wht zoekmachine. Toch nog niks gevonden. Misschien niet de juiste benamingen gebruikt.

Bedankt voor je reactie, ziet er goed uit we gaan het eens proberen!