Fehler beim Zugriff auf MySQL-Tabelle aus einem Skript heraus
Guten Tag,
folgende Fehlermeldung macht mir gerade zu schaffen:
mysqli_connect(): (HY000/2002): No connection could be made because the target machine actively refused it.
Es ist ein WIN2016 Server, IIS10, PHP7.2, MySQL5.0. Die Firewall ist so konfiguriert, daß der Prt 3306 von aussen erreichbar ist. Die Dienste laufen auch alle.
Mit diesen, durch eine Schleife gefüllte, Zugangsdaten
$cldb2 = mysqli_connect($host2, $user2, $kennwort2, $dbname2) or die(mysqli_error($cldb2));
soll die Verbindung aufgebaut werden. Die Zugangsdaten sind doppelt geprüft und korrekt.
Das kuriose ist, daß ich von aussen mit dem MySQL-Administrator (auch mit diesen Zugangsdaten) an die Datenbank komme und Querys starten kann.
Der Fehler kommt nur, wenn ich versuche, mit einem PHP-Skript eine Verbindung herzustellen. Beide betroffenen Server befinden sich bei T-Systems in der Cloud und befinden sich im derselben IP-Range.
Sie sind aber nicht in einer Domäne.
Zögert bitte nicht zu fragen, wenn Euch zur Analyse noch irgendwelche Informationen fehlen. Ich steh wirklich auf dem Schlauch.
Vielen Dank für jede Idee
Chris
folgende Fehlermeldung macht mir gerade zu schaffen:
mysqli_connect(): (HY000/2002): No connection could be made because the target machine actively refused it.
Es ist ein WIN2016 Server, IIS10, PHP7.2, MySQL5.0. Die Firewall ist so konfiguriert, daß der Prt 3306 von aussen erreichbar ist. Die Dienste laufen auch alle.
Mit diesen, durch eine Schleife gefüllte, Zugangsdaten
$cldb2 = mysqli_connect($host2, $user2, $kennwort2, $dbname2) or die(mysqli_error($cldb2));
soll die Verbindung aufgebaut werden. Die Zugangsdaten sind doppelt geprüft und korrekt.
Das kuriose ist, daß ich von aussen mit dem MySQL-Administrator (auch mit diesen Zugangsdaten) an die Datenbank komme und Querys starten kann.
Der Fehler kommt nur, wenn ich versuche, mit einem PHP-Skript eine Verbindung herzustellen. Beide betroffenen Server befinden sich bei T-Systems in der Cloud und befinden sich im derselben IP-Range.
Sie sind aber nicht in einer Domäne.
Zögert bitte nicht zu fragen, wenn Euch zur Analyse noch irgendwelche Informationen fehlen. Ich steh wirklich auf dem Schlauch.
Vielen Dank für jede Idee
Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 464792
Url: https://administrator.de/contentid/464792
Ausgedruckt am: 24.11.2024 um 20:11 Uhr
13 Kommentare
Neuester Kommentar
Hi
da wurde entweder eine Firewall so eingerichtet, das sie die Verbindung nur von bestimmten IPs annimmt und/oder der MySQL User eingeschränkt.
Guck mal wie der User in der DB steht.
Administrator@% z.B bedeutet, das von allen Verbindungen her der Admin verwendet werden kann.
Administrator@localhost würde eine Verbindung nur vom lokalen Server aus zulassen.
da wurde entweder eine Firewall so eingerichtet, das sie die Verbindung nur von bestimmten IPs annimmt und/oder der MySQL User eingeschränkt.
Guck mal wie der User in der DB steht.
Administrator@% z.B bedeutet, das von allen Verbindungen her der Admin verwendet werden kann.
Administrator@localhost würde eine Verbindung nur vom lokalen Server aus zulassen.
Hallo!
Überleg dir evtl. auch MySql auf den aktuellen Stand (Version 5.7) zu bringen. Version 5.0 ist Stand 2005 und PHP 7.2 ist Stand 2017.
Aufgrund der Fehlermeldung schließe ich mich der Vermutungen von @SeaStorm an.
Gruß
eisbein
Überleg dir evtl. auch MySql auf den aktuellen Stand (Version 5.7) zu bringen. Version 5.0 ist Stand 2005 und PHP 7.2 ist Stand 2017.
Aufgrund der Fehlermeldung schließe ich mich der Vermutungen von @SeaStorm an.
Gruß
eisbein
Zitat von @SeaStorm:
das MySQL Log sollte da etwas mehr Infos haben, warum die Verbindung abgelehnt wurde.
das MySQL Log sollte da etwas mehr Infos haben, warum die Verbindung abgelehnt wurde.
Stimmt, das wäre auch hilfreich.
Guten Morgen,
Das läuft über Port 80 und nicht über Port 3306?
Scanne mal Port 3306 deiner externen IP um zu sehen ob dieser überhaupt offen ist und welcher Dienst darauf lauscht.
Gruß
eisbein
Edit:
Wie sieht die Variable $host2 aus? Steht da nur die IP oder IP:Port?
Da ich ja mit dem MySQL Administrator volle Zugriffsberechtigung habe
Das läuft über Port 80 und nicht über Port 3306?
Scanne mal Port 3306 deiner externen IP um zu sehen ob dieser überhaupt offen ist und welcher Dienst darauf lauscht.
Gruß
eisbein
Edit:
$cldb2 = mysqli_connect($host2, $user2, $kennwort2, $dbname2) or die(mysqli_error($cldb2));
Wie sieht die Variable $host2 aus? Steht da nur die IP oder IP:Port?
Moin,
was ist denn mit der Firewall zwischen Netz und Internet? Hast Du die auch geprüft? Oder hängt der Rechner direkt im Netz? Wird evtl. der Port 443 an den Server weitergleitet und der 3306 nicht? Die Fehlermeldung, dass der Zugriff aktiv abgelehnt wurde, spricht eigentlich für einen entsprechenden Eintrag in einer FW.
Liebe Grüße
Erik
was ist denn mit der Firewall zwischen Netz und Internet? Hast Du die auch geprüft? Oder hängt der Rechner direkt im Netz? Wird evtl. der Port 443 an den Server weitergleitet und der 3306 nicht? Die Fehlermeldung, dass der Zugriff aktiv abgelehnt wurde, spricht eigentlich für einen entsprechenden Eintrag in einer FW.
Liebe Grüße
Erik