remote mySQL Zugriff scheitert (PHP Version 4.3.10-16)

remote mySQL Zugriff scheitert (PHP Version 4.3.10-16)

am 03.10.2006 23:39:20 von Ralf Schmitz

Hi@ll,

ich habe da mal ein derbes Problem:

Wenn ich via PHP auf einen MySQL Server auf localhost zugreife, dann
funktioniert das ohne Schwierigkeiten.

Änder ich jedoch im Aufruf von mysql_connect den Host, so connected er
immernoch auf localhost und ignoriert den angegebenen Hostnamen, sowie User
und Passwort gänzlich - auf localhost geht das !

Aufruf von localhost:
mysql_connect('localhost', 'rooty', 'password');

Aufruf auf remote Host (Auszug Zeile 7-9):
7: mysql_connect('192.168.110.8', 'rooty', 'password');
8: mysql_select_db('datenbank');
9: mysql_query("insert into something");

Als Ausgabe erhalte ich dann:
Warning: mysql_connect(): Can't connect to MySQL server on '192.168.110.8'
(111) in /var/www/test.php on line 7

Warning: mysql_select_db(): Access denied for user 'www-data'@'localhost'
(using password: NO) in /var/www/test.php on line 8

Warning: mysql_select_db(): A link to the server could not be established in
/var/www/test.php on line 8

Warning: mysql_query(): Access denied for user 'www-data'@'localhost' (using
password: NO) in /var/www/test.php on line 9

Warning: mysql_query(): A link to the server could not be established in
/var/www/test.php on line 9


Natürlich sind laut phpinfo() safe_mode's deaktiviert:
safe_mode Off Off
sql.safe_mode Off Off
mysql.allow_persistent On On
mysql.connect_timeout -1 -1
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off


Kennt das Verhalten irgendwer von Euch ???

Übrigens bekomme ich auch o.g. Verhalten, wenn ich localhost gegen die IP
des 'localhost' ändere ... WARUM ???

Danke und Gruß
Stefan

Re: remote mySQL Zugriff scheitert (PHP Version 4.3.10-16)

am 04.10.2006 01:03:07 von Carsten Wiedmann

Ralf Schmitz schrieb:

> Aufruf auf remote Host (Auszug Zeile 7-9):
> 7: mysql_connect('192.168.110.8', 'rooty', 'password');
> 8: mysql_select_db('datenbank');
> 9: mysql_query("insert into something");
>
> Als Ausgabe erhalte ich dann:
> Warning: mysql_connect(): Can't connect to MySQL server on
> '192.168.110.8' (111) in /var/www/test.php on line 7

Da solltest du halt klären, warum du keinen Connect bekommst. (benutz der
Server unter 192.168.110.8 überhaupt TCP/IP, Firewall?)


> Warning: mysql_select_db(): Access denied for user 'www-data'@'localhost'
> (using password: NO) in /var/www/test.php on line 8
>
> Warning: mysql_select_db(): A link to the server could not be
> established in /var/www/test.php on line 8
>
> Warning: mysql_query(): Access denied for user 'www-data'@'localhost'
> (using password: NO) in /var/www/test.php on line 9
>
> Warning: mysql_query(): A link to the server could not be established in
> /var/www/test.php on line 9

Da es also bisher keine Verbindung mit einem Sever gab, baut PHP beim
Benutzen einer MySQL-Funktion erst einmal eine Verbindung zum (lokalen)
Standardserver auf. Zumindest wird dieses Versucht. Da aber keine gültigen
Anmeldedaten wo hinterlegt wurden, funktioniert zwar der Connect, aber die
Anmeldung scheitert dann jeweils.


> Kennt das Verhalten irgendwer von Euch ???

Jup. Steht im PHP-Manual so drin.


> Übrigens bekomme ich auch o.g. Verhalten, wenn ich localhost gegen die IP
> des 'localhost' ändere ... WARUM ???


Siehe oben. (Server benutzt kein TCP/IP oder Firewall).
(BTW: Anstatt "die IP des 'localhost'", hättest auch gleich 127.0.0.1
schreiben können. Dann weis man wenigstens gleich was du meinst.)

xpost+fup2 d.c.l.p.d

Gruß
Carsten