| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

30-01-2009, 16:10
|
|
poc04578
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 9
|
|
MySQL - Zwangsweise Verbingung auf localhost
Servus,
bisher habe ich den MySQL-Server localhost auf dem Webserver laufen lassen. Den habe ich outgesourced und möchte mich nun auf den neuen Server verbinden. Jetzt wirds komisch: Versuche ich dies per Konsolen-php, dann funktionierts prima. Auch via JDBC gibt es keine Probleme. Versuche ich es über den Webserver (gleiches PHP-Script), dann versucht PHP sich krampfhaft localhost zu verbinden.
Wo könnte der Teufel stecken? In der php.ini gibt es keine Default-Werte für den Server-Connect.
Das System auf dem PHP (5.1) mit MySQL 5 läuft ist ein Debian-etch.
VG Christoph
|

30-01-2009, 18:02
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
|
Wo könnte der Teufel stecken?
|
Sind beide PHP Versionen identisch?
Verwenden beide die gleiche php.ini?
Wenn: ja,ja, dann:
Die Pfade sind anders!
Deine Webversion findet die include Datei mit den Zugangsdaten nicht. Verwende statt include mal require_once, dann schreit es erbost auf.
|

30-01-2009, 19:45
|
|
poc04578
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 9
|
|
Nein, das scheint nicht das Problem zu sein, habe mich da nicht genau ausgedrüclt. Um den Fehler zu lokalisieren, habe ich das Script auf den klassischen php.net-mysql_connect-3-Zeiler reduziert.
Es geht darum, dass ich keine Chance habe, mich auf einem fremden MySQL-Server zu verbinden. Es wird immer versucht den lokalen MySQL-Server anzubinden, egal was man bei "Host" nun rein schreibt.
Es wird immer localhost versucht.
Alles andere funktioniert ja, auch was die Pfade bei includes angeht, funktioniert.
VG Christoph
|

30-01-2009, 19:58
|
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
evt lehnt der server den zugriff von aussen einfach ab.
zeig mal den code der den fehler wirft.
ist es wirklich der connect oder später?
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

30-01-2009, 20:40
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
|
Es wird immer localhost versucht.
|
Mit der CLI Version klappts doch oder?
Zitat:
|
Versuche ich es über den Webserver (gleiches PHP-Script)
|
Liegt das auf DEM SELBEN Server wie das CLI?
Wenn nein, warum sagst du das nicht klar und deutlich?
Wie sollen wir denn deine Kisten auseinander halten?
Ansonsten kann ich MelloPie nur recht geben.
Geändert von combie (30-01-2009 um 20:42 Uhr)
|

30-01-2009, 23:35
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
CLI und mod_php verwenden in der Regel verschiedene php.ini Dateien.
Schau dir mal im Browser die Ausgabe von phpinfo() an, öffne die dort angegebene php.ini und suche nach sql.safe_mode. Wenn der an ist, verwendet mysql_connect() immer die Defaultwerte statt der übergebenen Parameter. Der Defaultwert steht auch in der php.ini unter mysql.default_host.
|

01-02-2009, 12:10
|
|
poc04578
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 9
|
|
Servus,
der Quelltext ist nicht mehr als ein simples mysql_connect($user, $host, $password), mehr nicht:
PHP-Code:
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';
?>
Wenn ich schon damit Verbindungsprobleme habe, brauche ich es nicht auf kompliziertere Strukturen, etwa Einlesen Config-File, etc, .. nicht portieren.
Der MySQL-Server lehnt auch keine Abfragen von außen ab, sonst würde ja der SQL-Server einen Fehler werfen. Außerdem kann ich mich mit einem anderen Server problemlos via Script und Web verbinden ... die Suche geht also weiter.
Ich bin mir auch so ziemlich sicher, dass ich den safe_mode ausgeschaltet habe, muss ich mal nachsehen. Komme nur heute nicht auf die Maschine.
VG Christoph
Geändert von poc04578 (01-02-2009 um 12:13 Uhr)
|

01-02-2009, 12:53
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
1. Das ist nicht der Code, den benutzt
2. Was wird genau für ein Fehler ausgegeben (nicht nur "es geht nicht" sondern den genauen Text)
3. Die Parameterreihenfolge ist Host, User, Password.
Prinzipiell gilt hier der Grundsatz, dass man konkrete Aussagen nur mit der genauen Fehlermeldung oder dem betreffenden Stück Code treffen kann. Beides fehlt hier.
|

01-02-2009, 13:31
|
|
poc04578
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 9
|
|
Natürlich ist es $Host, $User, $Password ...
... der Fehler lautet #2002 - konnte micht nicht mit localhost verbinden. Ist ja auch ganz klar, da der localhost-mysql-Server heruntergefahren wurde. Starte ich den Lokalen MySQL-Server, dann wird eine Verbindung zu ihm aufgebaut und alles funktioniert bestens. Das ist ja das Unerklärliche.
VG Christoph
|

01-02-2009, 13:34
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Ich kenne die Parameter-Reihenfolge. Du nicht, immerhin hast du zwei unterschiedliche in deinem vorherigen Post genannt. Und den Code bist du uns immer noch schuldig.
|

01-02-2009, 18:01
|
|
UzumakiNaruto
Registrierter Benutzer
|
|
Registriert seit: Nov 2004
Ort: Hannover
Beiträge: 584
|
|
was sagt den phpinfo() dazu??
steht da was von MYSQL_SOCKET?
__________________
Gruß
Uzu
|

02-02-2009, 10:49
|
|
poc04578
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 9
|
|
Hier nun der Code - also nichts Bewegendes:
PHP-Code:
$link = mysql_connect($host, $user, $password);
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error().mysql_errno());
}
echo 'Verbindung erfolgreich';
mysql_close($link);
?>
.. Die Fehlermeldung lautet: Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in ...
Mit der Parameterreihenfolge hat dies definitiv nix zu tun, da ja das Script über die Konsole funktioniert, d.h. das Script verbindet sich korrekt mit dem MySQL-Server, nur dann nicht, wenn ich es über einen Webbrowser abrufe.
Unter MYSQL_SOCKET steht auch nix Besonderes: /var/run/mysqld/mysqld.sock
... Die Suche geht weiter.
VG Christoph
Geändert von poc04578 (02-02-2009 um 10:51 Uhr)
|

02-02-2009, 10:54
|
|
lennart
PHP Junior
|
|
Registriert seit: May 2007
Ort: Hamburg
Beiträge: 565
|
|
Wo kommt $host her?
|

02-02-2009, 13:44
|
|
poc04578
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 9
|
|
Die Variablen stehen im Beispiel natürlich für einen String. ... Meine Suche geht zur Zeit in die Richtung, ob eventuell im Debian-System nicht alle notwendigen Komponenten installiert sind.
VG C
|

02-02-2009, 14:05
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Könnte es eventuell sein, dass du etwas schwer von Begriff bist? Mit deinen spärlichen Informationen kann dir keiner sagen, wo das Problem ist - obgleich es schon ein paar Vermutungen gibt.
Ich versuche es mal so allgemein Verständlich wie möglich auszudrücken: Wir brauchen zunächst einmal den Code, den du da verwendest. Das was du bisher gepostet ist leider kaum aussagekräftig. Darüberhinaus brauchen wir eine ordentliche Fehlermeldung. Dass du dich nicht verbinden kannst, hast du schon gesagt. Du hast doch extra eine Abfangroutine eingebaut, die dir den MySQL-Fehler ausgibt: Nenn uns den doch endlich! Darüberhinaus wurdest du gefragt, was in $host steht. Das ist höchstwahrscheinlich der Knackpunkt und sas solltest du dir - testweise - für den Fall einer fehlgeschlagenen Verbindung ausgeben lassen.
Wenn das für dich immer noch zu hoch war und du immer noch an allen Vorbeiredest: Viel Spaß.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|