Datenbankverbindung zu anderem Server

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Datenbankverbindung zu anderem Server

Postby madew » 01. July 2004 13:07

Hallo,

ich steh grad ziemlich auf der Leitung und komm grad absolut nicht weiter.
Mein Problem:

Ein php Script soll sich mit einer Datenbank auf einem fremden Server verbinden. Aber irgendwas mach ich falsch, da ich nicht mal eine Hostverbindung hinbekomme. So siehts aus:
Code: Select all
define('mysql_host','217.68.186.84');
define('mysql_user','user1');
define('mysql_pass','****');
define('mysql_database','useronline');

@mysql_connect(mysql_host,mysql_user,mysql_pass) or die ( "Host failed");
    echo "Host Verbindung: OK";
    
mysql_select_db(mysql_database) or die ("Database failed-".mysql_error()."");
   echo " DB:  OK. Connected to:".mysql_database."<br\n>";


Was mach ich falsch?
madew
 
Posts: 8
Joined: 01. July 2004 12:57

Postby Rolidor » 01. July 2004 13:32

Hallo.
lass doch mal das '@' vor 'mysql_connect()' weg und poste die Meldung vom Server.

Rolo
Rolidor
 
Posts: 406
Joined: 20. April 2004 10:17
Location: Dreieich - Hessen

Re: Datenbankverbindung zu anderem Server

Postby Wiedmann » 01. July 2004 13:55

madew wrote:
Code: Select all
@mysql_connect(mysql_host,mysql_user,mysql_pass) or die ( "Host failed");

Was mach ich falsch?

Hm, die meisten Provider lassen Verbindungen zu MySQL nur von 'localhost' zu.
Ansonsten, in Anlehnung an das von Rolidor gesagtem:
Lass dir auch bei mysql_connect im die() den mysql_error() mit ausgeben.
Code: Select all
if (!$link = @mysql_connect(mysql_host, mysql_user, mysql_pass)) {
    exit('Keine Verbindung zu MySQL: '.mysql_error());
}
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

-

Postby madew » 01. July 2004 15:37

Folgende Fehlermeldung entsteht:

Keine Verbindung zu MySQL: Can't connect to MySQL server on '217.68.186.84' (10060)

Die IP ist korrekt
madew
 
Posts: 8
Joined: 01. July 2004 12:57

Postby Wiedmann » 01. July 2004 16:58

Keine Verbindung zu MySQL: Can't connect to MySQL server on '217.68.186.84' (10060)

Die IP ist korrekt

Das mag vielleicht eine korrekte IP sein... Nur ist dort halt unter Port 3306 kein MySQL Server erreichbar. Siehe meinen ersten Satz von vorher.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Rolidor » 01. July 2004 17:40

Hi.
Ich schau jetzt auch mal in meine Kristallkugel (mehrfach zeitmutiplex mit Hyperfuturing).
In der Regel ist es so, dass die Internet-Provider, solange es nicht ausdrücklich anders formuliert ist, keinen Zugriff auf die Datenbanken von außen zulassen. Außerdem lagern die beim Hoster meistens alle in 1 (einem!) Verzeichnis. Die dem spezifischen (Hosting)Paket zugehörigen Datenbanken werden dann einfach auf 'localhost' gemappt und sind dann vom Webspace aus auch nur über 'localhost' ansprechbar. Die tatsächliche IP des Datnbankservers ist normalerweise nicht mit der des gebuchten Hostingpakets identisch. Lässt sich beim Provider aber einrichten.
Soviel zur Technik. Wenn's nicht gerade 1&1 oder Strato ist, dann schalten inzwischen viele Hoster den Zugriff auf die Datenbanken von außen frei. Einfach mal anfragen.

Gruß
Rolo
Rolidor
 
Posts: 406
Joined: 20. April 2004 10:17
Location: Dreieich - Hessen

Postby madew » 01. July 2004 20:46

@Wiedmann

Was kann ich in diesem Fall machen?


@Rolidor
Es ist genau umgekehrt. Ich möchte vom Server meines Homepageproviders auf eine Datenbank meines privaten Servers zugreifen. Das müßte doch funktionieren?
madew
 
Posts: 8
Joined: 01. July 2004 12:57

Postby Rolidor » 01. July 2004 21:04

OK.
Ich schwall halt manchmal gerne. :wink:
Prinzipiell sollte dein Vorhaben kein Problem sein. Ich schätze, du hast dich schon versucht, über http mit deinem privaten Server zu verbinden. Wenn das funktioniert, könnte es z.B. sein, dass dein ISP, dein Hoster oder irgendeine bei dir laufende Schutzsoftware den Port 3306 blockiert? Nur so eine Idee.

Gruß
Rolo
Rolidor
 
Posts: 406
Joined: 20. April 2004 10:17
Location: Dreieich - Hessen

Postby Kampfwurst » 01. July 2004 21:06

ja. dein router kann genauso mysql blocken, wie er auch www oder ftp blockt :) weiß ja nicht, ob du einen hast
Kampfwurst
 
Posts: 32
Joined: 21. April 2004 14:04

Postby Wiedmann » 01. July 2004 21:11

madew wrote:@Rolidor
Es ist genau umgekehrt. Ich möchte vom Server meines Homepageproviders auf eine Datenbank meines privaten Servers zugreifen. Das müßte doch funktionieren?

Dann sag doch gleich was du machen willst...

madew wrote:@Wiedmann
Was kann ich in diesem Fall machen?

Das selbe was du machen mußt wenn dein Webserver aus dem Internet erreichbar sein soll.
- öffne in der Firewall den Port 3306
- im Falle eines Routers mach ein Port-Mapping von Port 3306 auf die interne IP von deinem MySQL-Server

in MySQL:
- sorg dafür das der MySQL-Server nicht nur auf 127.0.0.1 hört: in der my.ini/my.cnf sollte "bind-address" nicht konfiguriert sein
- leg den Benutzer mit dem du auf den Server zugreifst mit "benutzer@%" und nicht mit "benutzer@localhost" an.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby madew » 01. July 2004 21:54

Port 3306 ist frei. Prinzipiell klappt der Zugriff ja, bloß nicht von ISP Server zu meinem Privatem.

Ich hab jetzt auch den "benutzer@%" angelegt.
In der my.ini steht als "blind-address"= 192.168.0.2 - Das ist ein Rechner ausm Netzwerk. Was soll ich da an Stelle rein schreiben?

Was mich auch noch wundert: Wenn ich das Script vom ISP Server ausführe, versucht der ewig lange die Datenbankverbindung herzustellen. Habs probehalber schon mal 2 Minuten laufen lassen, ohne das er abgebrochen hätte. Weiß nicht ob euch das was nutzt?!?
madew
 
Posts: 8
Joined: 01. July 2004 12:57

Postby Wiedmann » 01. July 2004 22:06

Port 3306 ist frei. Prinzipiell klappt der Zugriff ja, bloß nicht von ISP Server zu meinem Privatem.

Was heisst es tut prinzipiell? Von wo aus klappt das prinzipiell?
Von mir aus läßt sich unter der von dir angegeben Adresse (217.68.186.84) nichts erreichen. Nun gut. 9 Ports ohne aktivierten Dienst. aber kein 3306 dabei.

In der my.ini steht als "blind-address"= 192.168.0.2 - Das ist ein Rechner ausm Netzwerk. Was soll ich da an Stelle rein schreiben?

Dass kann nicht einer aus deinem Netzwerk sein, sondern wenn, dann der wo MySQL drauf ist.
mach ein "#" an den Anfang von der Zeile.

Was mich auch noch wundert: Wenn ich das Script vom ISP Server ausführe, versucht der ewig lange die Datenbankverbindung herzustellen. Habs probehalber schon mal 2 Minuten laufen lassen, ohne das er abgebrochen hätte. Weiß nicht ob euch das was nutzt?!?

Hm. Vorher hast du geschrieben:
Keine Verbindung zu MySQL: Can't connect to MySQL server on 217.68.186.84' (10060)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby madew » 01. July 2004 22:47

Ich wollte es bloß nochmal erwähnen das es ewig dauert, bis diese Fehlermeldung kommt.

Aber, die aktuelle Fehlermeldung lautet:
Can't connect to MySQL server on '217.68.186.84' (110)

Was bedeutet die 110 in den Klammern?

Und mit prinzipiell meine ich den Datenbankzugriff von anderen Rechnern auf meinen Server. Habs vorhin grad mal probehalber vom Rechner meiner Eltern getestet und es hat geklappt
madew
 
Posts: 8
Joined: 01. July 2004 12:57

Postby Rolidor » 01. July 2004 23:19

Moin madew.
Bist du noch da?

Rolo
Rolidor
 
Posts: 406
Joined: 20. April 2004 10:17
Location: Dreieich - Hessen

Postby madew » 01. July 2004 23:39

jap
madew
 
Posts: 8
Joined: 01. July 2004 12:57

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 30 guests