J'ai supprimé mon ancienne version de wam avant de réinstaller la nouvelle version proposée sur le site de wamp : WampServer 2.0h [16/04/09] Une fois celle ci installée, impossible d'établir une connexion locale vers ma base de données en utilisant le champ password de Mysql. Cette connexion ne s'établit qu'avec OLD_PASSWORD. D'où vient ce problème ?
Après installation j'avais le message que la bibliothèque utilisée ne correspondait pas avec la 5.1.33 mais utilisait des ressources de la 5.0.51 a
Mon serveur distant étant sous la version 5.0.45, j'ai installé celle çi pour voir. Même résultat, je ne peux établir de liaison avec mes bases de données qu'en utilisant le cham OLD_PASSWORD !!
voici les données affichées dans serveurWeb de phpMyAdmin :
* Apache/2.2.11 (Win32) PHP/5.2.9-2 * Version du client MySQL: 5.0.51a * Extension PHP: mysqli
> Cette connexion ne s'établit qu'avec OLD_PASSWORD. > D'où vient ce problème ?
L'utilisation obligatoire de OLD_PASSWORD provient du fait que votre version précédente de MySQL était antérieure à la version 4.1, version pour laquelle les mots de passe cryptés sont passés de 16 à 41 octets. Les évolutions furent 3.20, 3.21, 3.22, 3.23, 4.0, 4.1, 5.0, 5.1. Il vous aurait fallu passer par les versions intermédiaires 4.0, 4.1, 5.0 et 5.1 en exécutant mysql_upgrade à chaque passage et non pas passer d'une version antérieure à la 4.1 directement à la 5.1.33 et surtout exécuter mysql_fix_privilege_tables pour mettre à jour la taille de la colonne Password, de 16 à 41 octets.
Cela provient aussi du fait que vous utilisez la base mysql en général et la table users en particulier de votre ancienne version de MySQL et non pas de la nouvelle version ou que vous avez copié votre ancienne table user.
Changer de version MySQL n'y changera rien, les mots de passe étant stockés dans la table mysql.users. À ce sujet, lire avec grande attention : [dev.mysql.com]
> Après installation j'avais le message que la bibliothèque utilisée ne correspondait pas avec la 5.1.33 mais utilisait des ressources de la 5.0.51a
Les contributions qui traitaient de ces problèmes ont disparues à la suite du crash du forum.
Notice (Warning) qui apparaît avec PHP 5.2.8 ou postérieur et MySQL 5.1.30 ou postérieur dans la fenêtre de PhpMyAdmin. « La version de votre bibliothèque MySQL (5.0.51a) diffère de la version de votre serveur MySQL (5.1.34). Ceci peut occasionner un comportement imprévisible. » C'est du au fait que PHP est resté en version client 5.0.51a alors que MySQL a évolué. Ça peut être génant, comme ça peut ne pas l'être, mais, si vous gardez la version MySQL 5.1.3x, il est indispensable d'effectuer la procédure d'éventuelle mise à jour de vos bases de données, en l'occurrence mysql_upgrade.exe Avec les évolutions serveur MySQL 5.1.3x, vous risquez également d'avoir le message d'erreur : Table 'mysql.servers' doesn't exist (Voir - B -)
- A - Évolution client PHP vers MySQL 5.1.3x --- Vous pouvez effectuer une « mise à jour » du client mysql PHP en version 5.1.3x en suivant la procédure ci-dessous
Télécharger l'archive contenant les « bonnes » dll d'extension pour PHP ici :
Décompactez l'archive téléchargée dans un dossier temporaire ce qui vous donnera trois fichiers : php_mysql.dll php_mysqli.dll readme.txt
Pour éviter tout problème éventuel et pouvoir revenir en arrière, il est conseillé de : - Renommer wamp/bin/php/php5.2.x/ext/php_mysql.dll en php_mysql_old.dll - Renommer wamp/bin/php/php5.2.x/ext/php_mysqli.dll en php_mysqli_old.dll - Copier php_mysql.dll téléchargée dans wamp/bin/php/php5.2.x/ext/php_mysql.dll - Copier php_mysqli.dll téléchargée dans wamp/bin/php/php5.2.x/ext/php_mysqli.dll
- Renommer wamp\bin\php\php5.2.x\libmysql.dll en libmysql_old.dll - Copier wamp\bin\mysql\mysql5.1.3x\bin\libmysql.dll dans wamp\bin\php\php5.2.x\libmysql.dll - Renommer wamp\bin\apache\apache2.2.10\bin\libmysql.dll en libmysql_old.dll - Copier wamp\bin\mysql\mysql5.1.3x\bin\libmysql.dll dans wamp\bin\apache\apache2.2.10\bin\libmysql.dll
----------------------------------------------------- - B - mysql_upgrade.exe - 1 - Dans le dossier contenant vos bases de données, par défaut "wamp\bin\mysql\mysql5.1.3x\data" avez-vous un fichier mysql_upgrade_info ? Nota : Le dossier contenant vos bases de données correspont au contenu de "datadir=...." du fichier "wamp\bin\mysql\mysql5.1.3x\my.ini" - 2 - Contient-il "5.1.3x" ? (Numéro de la version MySQL utilisée)
Si vous répondez NON à 1 ou NON à 2, vous avez de grands risques de voir survenir l'erreur : "Table 'mysql.servers' doesn't exist" et, éventuellement d'autres erreurs car il n'y a pas eu de vérification de la concordances de vos bases de données avec la nouvelle version de MySQL.
Remarque : La table mysql.servers n'est utilisée que par les moteurs de base de données de type FEDERATED, mais, avec certaines instructions SQL, elle est vérifiée et l'erreur survient si elle n'existe pas. Cette table n'est pas installée lors de mises à jour parce que l'installateur ne peut pas faire tout ce qui est requis car il n'est pas « client » et il ne peut pas accéder aux bases de données mais uniquement aux fichiers du système.
C'est pourquoi il est fourni le programme mysql_upgrade.exe qui permet de modifier les tables qui nécessitent des modifications après une mise à jour ou une évolution de MySQL.
Ce progamme DOIT être exécuté après chaque mise à jour ou évolution de version de MySQL.
--- Effectuer mysql_upgrade.exe --- Pour les utilisateurs de Windows, non aficionado de la ligne de commande, voici la procédure à effectuer. Sauvegarder les bases de données existantes (mieux vaut prévenir que guérir !). Le dossier contenant vos bases de données correspont au contenu de "datadir=...." du fichier "wamp\bin\mysql\mysql5.1.3x\my.ini", sauf le dossier mysql qui contient les tables propres à MySQL.
Tout d'abord, il faut lancer le serveur MySql, donc lancer Wampserver Ensuite, lancer une fenêtre de commande par démarrer, exécuter et taper %SystemRoot%\system32\cmd.exe
Se placer dans le dossier bin de mysql 5.1.3x soit, pour wamp : wamp\bin\mysql\mysql5.1.3x\bin
Arrivé la il faut savoir si vous avez ou non mis un mot de passe à root@localhost
si mot de passe, taper mysql_upgrade.exe --user=root --host=localhost --password=mot_de_passe
si pas de mot de passe, taper mysql_upgrade.exe --user=root --host=localhost --password=
désolé de vous contredire, mais dans mon cas, la table user et la table db sont neuves, vides sauf les 2 premières lignes par defaut. j'ajoute un nouveau user, une table comme d'jabitude et je redémarre les services. ça ne se connecte pas sauf avec old_password
Etes vous sûr que l'archive wamp server 2.0h est bonne ? Merci
Lancez PhpMyadamin, base mysql, table user, et vérifiez :
- Colonne Password doit être déclarée char(41)
- Quels que soient les mots de passe que vous avez choisi, les 41 caractères doivent être utilisés et la chaîne doit commencer par *. Par exemple, le mot de passe "secret" est codé : *14E65567ABDB5135DOCFD9A70B3032C179A49EE7 Un mot de passe court "a" est codé *667F407DE7C6AD07358FA38DAED7828A72014B4E
Merci pour votre message, j'ai été en effet absent quelques jours. Ces affirmations sont erronées : "Cela provient aussi du fait que vous utilisez la base mysql en général et la table users en particulier de votre ancienne version de MySQL et non pas de la nouvelle version ou que vous avez copié votre ancienne table user. " Je vous avais spécifié qu'il s'agissait d'une nouvelle installation et non d'une ancienne install upgradée : "J'ai supprimé mon ancienne version de wamp avant de réinstaller la nouvelle version proposée sur le site de wamp : WampServer 2.0h [16/04/09]
j'avais créé une base nouvelle avec les users et db et je viens de commencerecommence donc la procédure d'install depuis le départ en faisant attention de ne plus rien avoir dans la registry concernant mysql : donc une installation neuve ! Je reboote la machine et viens ensuite continuer cette nouvelle install
Ré install effecxtué depuis l'archive actuelle WampServer2.0h.exe install ok ouverture de php myadmin et ce message en bas : La version de votre bibliothèque MySQL (5.0.51a) diffère de la version de votre serveur MySQL (5.1.33). Ceci peut occasionner un comportement imprévisible. j'ai donc fait les manip in diquées avec mysql.dll, libmysql.dll je lance phpmyadmin et c'est bon
La base de donnée importéée, a été updatée via mysql_upgrade.exe, sans problème
et le mot de passe est OK maintenant. Merci pour votre aide. Suggestion : mettre à jour l'archiveWampServer2.0h.exe, afin d'éviter cette manip qui prend du temps et nécessite d'être suivie à la lettre.