Verbindung mit php zu externer DB geht nicht

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

  • Verbindung mit php zu externer DB geht nicht

    Hallo @all!

    Ich habe hier ein Problem und komme alleine nicht weiter.

    Ich versuche von einem Linux Rechner (Fedora Core 4) mit php auf eine MySQL Datenbank 4.1 auf einem Windows Rechner (XP SP 2) zuzugreifen.

    Auf Konsole mit

    mysql -h 'winip' -u anita
    kann ich mich ohne weiteres einloggen und Abfragen machen etc... Der User anita@'linuxip' ist freigegben (ohne Password i.M.)

    Versuche ich mit php zuzugreifen:

    PHP-Code:
    $con mysql_pconnect("winip""anita""") or MySQL_ErrorMsg(); 
    bekomme ich als Fehlermeldung:
    Can't connect to MySQL server on 'winip' (13)
    Ich versteh leider nicht wieso. Wieso komm ich von der Konsole aus drauf und von php aus nicht? Verwende ich meinen lokalen DB-Server hab ich keine Probleme.
    Könnt ihr helfen??

    Vielen Dank im Voraus!

    Gruß Anita

    PS: Natürlich schreib ich in Wirklichkeit nicht linuxip und winip, sondern die wahren IP-Adressen.

  • #2
    Schon mal mit der IP statt dem Servernamen versucht ? Oder den Namen mit korrekter IP in die HOSTS Datei geschrieben ?
    Ev hilft auch das...
    PHP-Code:
    $con mysql_connect("winip""anita""") or MySQL_ErrorMsg(); 
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Hallo Tobi,

      erstmal danke für die Antwort.

      Ich versuch es bereits mit der IP-Adresse. Die IP-Adresse steht auch in der HOST genau so drin. Ein Austausch zwischen mysql_connect und mysql_pconnect hat leider auch keine Veränderung gebracht.

      Sonst noch Ideen?

      Viele Grüße
      Anita

      Kommentar


      • #4
        Hallo, ich nochmal.

        Ich habe gerade festgestellt, dass ich mit

        PHP-Code:
        $con mysql_connect('localhost''anita''') or MySQL_ErrorMsg(); 
        auf meinen lokalen MySQL-Server zugreifen kann, aber mit

        PHP-Code:
        $con mysql_connect('192.168.2.108''anita''') or MySQL_ErrorMsg(); 
        nicht. Die IP-Adresse ist aber definitiv meine eigene lokale IP. Und diese hab ich jetzt auch in die Tabelle HOST eingetragen. Der User anita@192.168.2.108 hat sogar alle möglichen Privilegien bekommen, die da sind.

        Kanns sein, dass es gar nicht am MySQL Server liegt, sondern am Apache vielleicht?? Das der mich nicht rausläßt? Sagt Euch das was?

        Viele Grüße
        Anita

        Kommentar


        • #5
          vielleicht wurde php nicht mit der option -with-mysql compiliert? kannst du mit phpinfo() überprüfen.

          gruß
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            @kropff: Dann würde mysql_xxx() mit "unknown function" quittiert oder?

            Du hast oben erwähnt, dass du auf der Konsole "mysql -h 'winip' -u anita" ausführen kannst. Wie ist das gemeint? Läuft die Konsole auf dem Rechner mit 'winip' oder verbindest du dich damit zu einem entfernten Rechner? Oder allgemein gefragt: Hast du es schon irgendwie geschafft, dich von extern mit dem MySQL-Server zu verbinden - über PHP, mit PHPMyAdmin oder direkt von Konsole?

            Kommentar


            • #7
              @kropff: Dann würde mysql_xxx() mit "unknown function" quittiert oder?
              war nur eine idee, kenne php ohne diese option garnicht

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Weisst du auf welcher IP Adresse der Server lauscht ? Ist es dir wirklich gelungen von deinem Client (nicht MySql Kiste !) mittels Konsole eine Verbindung zum entfernten MySql Server aufzubauen ?

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Hi!

                  Ja, ich habe es geschafft von meinem Rechner auf die entfernte SQL-Datenbank mittels Konsole zu kommen. Allerdings funktionierts nicht mit php, auch nicht mit phpmyadmin, sondern nur mit der Konsole mit dem Befehl mysql -h "enfernte IP"....

                  LG Anita

                  Kommentar


                  • #10
                    Folgendes habe ich bei MySql.org gefunden:
                    Wenn Sie die Fehlermeldung Can't connect to MySQL server on ein_hostname erhalten, können Sie folgendes probieren, um den Grund des Problems herauszufinden:

                    Überprüfen Sie, ob der Server hochgefahren ist, indem Sie telnet ihr_hostname tcp-ip-port-nummer ausführen und einige Male die Eingabetaste (RETURN) drücken. Wenn es auf diesem Port einen laufenden MySQL-Server gibt, sollten Sie eine Antwort erhalten, die die Versionsnummer des Server enthält. Wenn Sie einen Fehler wie telnet: Unable to connect to remote host: Connection refused erhalten, gibt es auf diesem Port keinen laufenden Server.

                    Versuchen Sie, sich mit dem mysqld-Daemon auf der lokalen Maschine zu verbinden und prüfen Sie den TCP/IP-Port, den mysqld laut Konfiguration benutzen soll (Variable port), mit mysqladmin variables.

                    Prüfen Sie, ob Ihr mysqld-Server nicht gestartet wurde, indem Sie die --skip-networking-Option verwenden.
                    Quellen:
                    - http://dev.mysql.com/doc/refman/4.0/...to-server.html
                    - http://dev.mysql.com/doc/refman/4.0/...ss-denied.html

                    Hoffentlich findest du dort was...

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Der telnet-Befehl funktioniert einwandfrei. Die Verbindung von meinem Rechner zum entfernten Rechner funktioniert auf Anhieb und es wird mir die MySQL Versionsnummer angezeigt.

                      Allerdings habe ich gerade gemerkt, dass ich in meinem 1. Posting versehentlich die falsche Versionsnummer angegeben habe. Auf dem entfernten XP-Rechner läuft MySQL-Server 5.0.15.

                      Ich werde das Gefühl nicht los, dass der Fehler nicht an MySQL und der Verbindung liegt, sondern an php und am Webserver, dass ich von php auf entfernte Rechner nicht zugreifen kann. Denk ich so falsch?

                      Ich gehe jetzt ins Wochenende. Die Rechner stehen bei mir im Geschäft, morgen ist bei uns Feiertag, also kann ich erst am Montag wieder Sachen ausprobieren. Kann ja mal versuchen, die Konstellation zu Hause nachzubauen

                      Auf weitere Vorschläge freue ich mich natürlich, falls noch jemand welche hat. Ansonsten wird nach dem WE weitergebastelt.

                      LG Anita
                      Zuletzt geändert von anita; 05.01.2006, 17:00.

                      Kommentar


                      • #12
                        Hallo @all,

                        erstmal danke an alle, die versucht haben mir zu helfen. Ich habe die Lösung nicht gefunden. In meiner letzten Verzweiflung habe ich den Apache, MySQL, php etc. von meinem Linux-Rechner runtergeschmissen und das aktuelle XAMPP draufinstalliert. Siehe da, auf einmal ging es Wohlgemerkt, am entfernten MySQL-Server hab ich rein gar nichts verändert.

                        Manchmal gibt es einfach Bugs, an denen man nix ändern kann. Da hilft nur noch eins: Neuinstallation!

                        Gruß Anita

                        Kommentar


                        • #13
                          Manchmal gibt es einfach Bugs, an denen man nix ändern kann. Da hilft nur noch eins: Neuinstallation!
                          OffTopic:

                          Das klingt ja wie ein Ausschnitt aus dem Handbuch von Windows



                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar

                          Lädt...
                          X