- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


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!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-01-2009, 16:10
poc04578
 Newbie
Links : Onlinestatus : poc04578 ist offline
Registriert seit: Jan 2009
Beiträge: 9
poc04578 ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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
Mit Zitat antworten
  #2 (permalink)  
Alt 30-01-2009, 18:02
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 2.925
combie befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #3 (permalink)  
Alt 30-01-2009, 19:45
poc04578
 Newbie
Links : Onlinestatus : poc04578 ist offline
Registriert seit: Jan 2009
Beiträge: 9
poc04578 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #4 (permalink)  
Alt 30-01-2009, 19:58
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #5 (permalink)  
Alt 30-01-2009, 20:40
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 2.925
combie befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________
Wir werden alle sterben

Geändert von combie (30-01-2009 um 20:42 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 30-01-2009, 23:35
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

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.
Mit Zitat antworten
  #7 (permalink)  
Alt 01-02-2009, 12:10
poc04578
 Newbie
Links : Onlinestatus : poc04578 ist offline
Registriert seit: Jan 2009
Beiträge: 9
poc04578 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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)
Mit Zitat antworten
  #8 (permalink)  
Alt 01-02-2009, 12:53
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
unset befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #9 (permalink)  
Alt 01-02-2009, 13:31
poc04578
 Newbie
Links : Onlinestatus : poc04578 ist offline
Registriert seit: Jan 2009
Beiträge: 9
poc04578 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #10 (permalink)  
Alt 01-02-2009, 13:34
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
unset befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #11 (permalink)  
Alt 01-02-2009, 18:01
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Ort: Hannover
Beiträge: 584
UzumakiNaruto ist zur Zeit noch ein unbeschriebenes Blatt
UzumakiNaruto eine Nachricht über ICQ schicken UzumakiNaruto eine Nachricht über MSN schicken UzumakiNaruto eine Nachricht über Yahoo! schicken
Standard

was sagt den phpinfo() dazu??
steht da was von MYSQL_SOCKET?
__________________
Gruß
Uzu
Mit Zitat antworten
  #12 (permalink)  
Alt 02-02-2009, 10:49
poc04578
 Newbie
Links : Onlinestatus : poc04578 ist offline
Registriert seit: Jan 2009
Beiträge: 9
poc04578 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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)
Mit Zitat antworten
  #13 (permalink)  
Alt 02-02-2009, 10:54
lennart
 PHP Junior
Links : Onlinestatus : lennart ist offline
Registriert seit: May 2007
Ort: Hamburg
Beiträge: 565
lennart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wo kommt $host her?
Mit Zitat antworten
  #14 (permalink)  
Alt 02-02-2009, 13:44
poc04578
 Newbie
Links : Onlinestatus : poc04578 ist offline
Registriert seit: Jan 2009
Beiträge: 9
poc04578 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #15 (permalink)  
Alt 02-02-2009, 14:05
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
unset befindet sich auf einem aufstrebenden Ast
Standard

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ß.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:27 Uhr.