MySQL - Zwangsweise Verbingung auf localhost

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

  • #2
    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

    Kommentar


    • #3
      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

      Kommentar


      • #4
        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

        Kommentar


        • #5
          Es wird immer localhost versucht.
          Mit der CLI Version klappts doch oder?


          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.
          Zuletzt geändert von combie; 30.01.2009, 20:42.
          Wir werden alle sterben

          Kommentar


          • #6
            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.

            Kommentar


            • #7
              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
              Zuletzt geändert von poc04578; 01.02.2009, 12:13.

              Kommentar


              • #8
                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.
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #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

                  Kommentar


                  • #10
                    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.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      was sagt den phpinfo() dazu??
                      steht da was von MYSQL_SOCKET?
                      Gruß
                      Uzu

                      private Homepage

                      Kommentar


                      • #12
                        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
                        Zuletzt geändert von poc04578; 02.02.2009, 10:51.

                        Kommentar


                        • #13
                          Wo kommt $host her?

                          Kommentar


                          • #14
                            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

                            Kommentar


                            • #15
                              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ß.
                              [FONT="Helvetica"]twitter.com/unset[/FONT]

                              Shitstorm Podcast – Wöchentliches Auskotzen

                              Kommentar

                              Lädt...
                              X