PHP und MySQL - Versionen voneinander abhängig?
Kalle_B
- php
0 Kalle_B0 dedlfix
0 André Laugks0 Sven Rautenberg0 MudGuard
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
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
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";
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
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
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
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
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
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
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";