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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #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: 3.296
combie wird schon bald berühmt werden
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: 3.296
combie wird schon bald berühmt werden
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.471
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.782
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.782
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
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

was sagt den phpinfo() dazu??
steht da was von MYSQL_SOCKET?
__________________
Gruß
Uzu

private Homepage
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.782
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:45 Uhr.