Serveur-de-ouf : bug SQL

Si vous avez installé un serveur PHP5 et PHP4 en suivant mon dernier tutorial, vous rencontrerez peut-être des problèmes pour vous connecter à un serveur SQL.

Ce problème se manifeste par cette réponse du serveur SQL : Client does not support authentication protocol requested by server; consider upgrading MySQL client.
Ici il est question du "MySQL client", c'est à dire de PHP ou plutôt de l'API qu'il utilise pour se connecter au serveur. Il est donc complètement inutile de râler contre la dernière version de MySQL (pour ma part j'utilise la 5.0, je ne suis pas friand des bêta).

L'API de PHP permettant de se connecter à un serveur SQL est l'extension php_mysql.dll.
Pour PHP4 ça version est la 3.23.49 contre la version 4.1.7 pour PHP5.
Le changement fondamental entre ces versions est la méthode de hashage utilisée pour les mots de passe. Le nouvel algorithme crée des mots de passe sur 41 octets contre 16 pour l'ancienne version (le changement est opérationnel depuis la 4.1).

C'est bien beau, mais ça n'arrange pas mon problème me direz vous ? J'y viens.
Une idée serait de récupérer une autre API plus récente, mais si Zend n'a pas intégré une version supérieure à la 4.1 c'est (surement) pour une bonne raison (en fait je ne sais pas pourquoi).
Bref, il faut faire autrement.

Country à décidé de ne pas mettre de mot de passe, comme ça c'est réglé.
Mais moi je préfère la manière compliquée :-) .

J'ai choisi de créer un utilisateur spécial pour PHP4, et qui utilise l'ancien algorithme de hashage. Pour ce faire :

  • Connectez vous sur le serveur (via PhpMyAdmin ou la console).
  • Ajoutez un utilisateur ayant tous les droits (ou non, à vous de voir) en utilisant PhpMyAdmin.
    Ou alors avec la console il suffit de faire la requête : GRANT ALL PRIVILEGES ON *.* TO 'php4-root'@'%' IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;.
  • Ensuite le plus important, changer le mot de passe pour qu'il utilise l'ancien algorithme : SET PASSWORD FOR 'php4-root'@'%' = OLD_PASSWORD('mot_de_passe');.

Et normalement plus de problèmes ;-) .

Commentaires

Je t'aime.

Moi non plus (facile et nul, je sais).

Oui, mais tu utilises des mots simples.....

T'es vraiment une enflure. Tout les bons moments qu'on a passé ensemble...

Laissez le vôtre !

Les commentaires pour ce billet sont fermés.

À propos du billet

jeudi 10 août 2006 à 22:45

Classé dans :

4 commentaires

Navigation inter-billets