Kalle_B: PHP und MySQL - Versionen voneinander abhängig?

Hallöle,

ich habe auf einem alten Account PHP 3.0.18 und MySQL 3.23.58, auf einem neuen Account bei einem anderen Provider MySQL- Version 4.1.9-log.

Nun habe in dem NEUEN Account eine weitere Datenbank eingerichtet auf der vorgegebenen Admin-Oberfläche. Per phpmyadmin kann ich zugreifen.

Problem: Die alten PHP- Programme sollen Daten rüberschaufeln, aber beim Versuch, den host mit der neuen DB anzusprechen,

$conn_id = mysql_connect($host, $id, $pw);

kommt folgende Meldung:

Warning: MySQL Connection Failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client in tm011.php on line 47

Klingt so, als ob PHP und MySQL zusammenpassen müssen?

Kalle

  1. Korrektur:

    ich habe ... auf einem neuen Account bei einem anderen Provider MySQL- Version 4.1.9-log.

    Das ist die eine Datenbank, auf die ich mit der alten PHP- Version zugreifen kann.

    Das Zugriffsproblem ergibt sich bei der zweiten Datenbank im selben Account. Aber die verrät natürlich ihre Versions-Nr nicht !!!

    Kalle

    1. echo $begrüßung;

      [...] zweiten Datenbank im selben Account. Aber die verrät natürlich ihre Versions-Nr nicht !!!

      Glaub ich nicht. :-) SELECT VERSION() sollte sie rausrücken.

      echo "$verabschiedung $name";

  2. Hallo!

    Warning: MySQL Connection Failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client in tm011.php on line 47

    Klingt so, als ob PHP und MySQL zusammenpassen müssen?

    Nein!

    Wenn man PHP installiert, teilt man PHP mit, wo die MySQL-Programmdateien liegen. PHP benötigt die, um mit der MySQL-Datenbank zu kommunizieren. Dein PHP 3 kennt nur MySQL 3.* und verwendet diese Programmdateien zum kommunizieren.

    Mit MySQL 4 hat sich dieses "authentication protocol" geändert.

    Da kannst Du gar nichts machen, nur Dein Provider.

    André Laugks

    --
    Die Frau geht, die Hilti bleibt!
  3. Moin!

    Warning: MySQL Connection Failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client in tm011.php on line 47

    Klingt so, als ob PHP und MySQL zusammenpassen müssen?

    Richtig. Die Einbindung von MySQL in PHP erfolgt über mitgelieferte Client-Bibliotheken von MySQL. Die Version von MySQL 3.23 ist dabei veraltet gegenüber der Version von MySQL 4.1. Insbesondere bei der Authentifizierung hat sich einiges verändert, so dass man mit den alten Client-Bibliotheken nicht mehr auf die neuen Datenbanken zugreifen kann. Umgekehrt hingegen sollte es funktionieren.

    Der ganz banale Weg wäre, einfach einen DUMP mit PHPMyAdmin zu erzeugen und in der neuen Datenbank zu importieren. Ich denke doch, dass du nicht vor hast, die beiden Datenbanken parallel von PHP3 aus zu betreiben - das klappt nämlich nicht, und PHP3 soll ja sowieso auf den Müll.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
  4. Hi,

    ich habe auf einem alten Account PHP 3.0.18 und MySQL 3.23.58, auf einem neuen Account bei einem anderen Provider MySQL- Version 4.1.9-log.
    Nun habe in dem NEUEN Account eine weitere Datenbank eingerichtet auf der vorgegebenen Admin-Oberfläche. Per phpmyadmin kann ich zugreifen.
    Warning: MySQL Connection Failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client in tm011.php on line 47

    Die MySQL-interne Authentifizierung hat sich geändert - die Paßwörter in der Datenbank MySQL in der Tabelle user werden anders codiert.
    Du könntest dort für Deine DB einen _zusätzlichen_ User anlegen, und für das Paßwort nicht die Funktion password("passwort"), sondern old_password("passwort") verwenden.

    Mit der alten PHP-Version kannst Du dann (vermutlich) über den zusätzlichen User zugreifen, mit dem bisherigen User mit der neuen PHP-Version.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo!

      Du könntest dort für Deine DB einen _zusätzlichen_ User anlegen, und für das Paßwort nicht die Funktion password("passwort"), sondern old_password("passwort") verwenden.

      Aha, gut zu wissen.

      André Laugks

      --
      Die Frau geht, die Hilti bleibt!
    2. Hi, Andreas,

      Du könntest dort für Deine DB einen _zusätzlichen_ User anlegen, und für das Paßwort nicht die Funktion password("passwort"), sondern old_password("passwort") verwenden.

      Sowas muss es wohl sein, der Provider hat gemailt:
      "Habe das Passwort auf einen alten Typ geändert, dann sollte der Zugriff auch mit Uralt-Mysql gehen."
      Und nun geht's.

      Ich selbst habe das Recht nicht, neue User einzurichten. Geht das per SQL?

      LG Kalle

      1. Hi,

        Ich selbst habe das Recht nicht, neue User einzurichten. Geht das per SQL?

        Ja - wenn man schreibenden Zugriff auf die Datenbank namens MySQL und die darin enthaltene Tabelle namens user hat.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. echo $begrüßung;

          Ich selbst habe das Recht nicht, neue User einzurichten. Geht das per SQL?

          Ja - wenn man schreibenden Zugriff auf die Datenbank namens MySQL und die darin enthaltene Tabelle namens user hat.

          Man kann auch, wenn man das Grant-Privileg für die entsprechenden Teile hat, GRANT verwenden. FLUSH PRIVILEGES sollte man auch machen dürfen, oder zur Not einen Server-Restart, sonst bringt's das alles nicht.

          echo "$verabschiedung $name";