ubuntuusers.de

MySql-DB von externem Server über php erreichen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

lacarpe

Avatar von lacarpe

Anmeldungsdatum:
21. Juni 2006

Beiträge: 340

Ich habe einen lokalen MySql-Server und ihn mit "bind-address = 192.168.178.20" für externe Zugriffe geöffnet. Es ist ein User "test" mit hinreichenden Rechten und ohne Passwort eingerichtet

Nun habe ich auf einem externen Webserver ein php-Script mit dieser Anweisung (123.123.123.123 sei die IP meines lokalen Servers):

$link = mysql_connect('123.123.123.123','test','');


Meinen lokalen MySql-Server scheint der externe Server zu finden, aber ich erhalte die Fehlermeldungen:

no connection: Lost connection to MySQL server at 'reading initial communication packet', system error: 111
Access denied for user 'www-data'@'localhost' (using password: NO)

Dasselbe passiert übrigends auch, wenn ich den das php-Script auf meinem lokalen Rechner starte.

Wenn ich allerdings auf meinem lokalen Rechner statt 123.123.123.123 die Adresse der Netzwerkkarte verwende, also

$link = mysql_connect('192.168.178.20','test','');


dann geht es.

Ich habe eine Firewall, aber daran liegt es nicht. Zum einen gelingt ja die Verbindung an sich (nur nicht die Authorisierung), zum anderen habe ich dasselbe Phänomen, wenn ich sie komplett öffne.

Was mich am meisten wundert ist, dass ich die Abrage mit dem User "test" mache, der Zugriff aber für "www-data" verweigert wird. Weiß jemand Rat?

schnere

Anmeldungsdatum:
27. Juni 2008

Beiträge: 63

Hallo!

Kommentier mal die ganze "bind-address" -Zeile mit vorangestelltem "#" aus, starte MySQL neu, und dann probiers nochmal.

Du kannst den MySQL-Server nicht an eine LAN-IP binden und dann mit einer WAN-IP zugreifen...

MfG schnere

lacarpe

(Themenstarter)
Avatar von lacarpe

Anmeldungsdatum:
21. Juni 2006

Beiträge: 340

Danke, schnere, für den Hinweis,

ich werde es heute abend mal ausprobieren. Allerdings befürchte ich, dass es auch so nicht geht. Ich habe nämlich noch ein wichtiges Detail vergessen zu beschreiben:

Ich sitze hinter einem Router und der nimmt dann ja die externen Anfragen entgegen (über die externe IP) und leitet das dann an die Netzwerkkarte weiter (192.168.178.20).

Zumal: Ansprechen kann man den MySQL-Server von außen ja (siehe 1. Post). Es ist nur so, dass der User abgelehnt wird (bzw. komischerweise User "test" vom externen Script gesendet, aber User "www-data" vom internen Server abgelehnt wird...???)

Oder sehe ich da was falsch?

Antworten |