Bonjour, J'ai le message "La version de votre bibliothèque MySQL (5.0.51a) diffère de la version de votre serveur MySQL (5.1.36)" lorsque j'accède la base avec phpmyadmin. Les versions de WAMP sont: Apache 2.0.63 (Win32), PHP 5.2.11, phpMyAdmin 3.2.0.1
Quelq'un saurait-il m'indiquer comment mettre à jour la bibliothèque MySQL ou le serveur MySQL pour que les versions soient synchros? Merci par avance. Cordialement.
Modifie 1 fois. Derniere modification le 19/10/2009 à 19:34 par Loctet8.
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. » Avec les évolutions serveur MySQL 5.1.3x, vous risquez également d'avoir le message d'erreur : "Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist"
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 sera indispensable d'effectuer la procédure de mise à jour de vos bases de données, en l'occurrence mysql_upgrade.exe. D'ailleurs, cette procédure est à effectuer à chaque évolution de version de MySQL. (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=
Bonsoir Otomatic, La procédure "A-Evolution client PHP..." a parfaitement fonctionné. J'ai récupéré les DLLs à cette adresse : [www.apachelounge.com]. Je vous signale que dans les binaires d'Apache 2.2.11 la "libmysql.dll" n'existe pas. Je l'ai ajouté. La procédure "B" la réponse à la question 1 est NON et fortiori NON à la 2. J'ai lancé la procédure" mysql_upgrade.exe" en ligne de commande DOS (cela m'a rappelé des souvenirs...). Elle s'est bien déroulée. Merci pour votre assistance. Cordialement.
Bonjour, Je remercie Otomatic pour sa reponse, car j'ai téléchargé Apache 2.2.11, Php 5.38, MySql 5.1.49 et phpMyAdmin3.1.2 que j'ai installé manuellement pelle melle dans un dossier sur mon ordinateur. Au lencement de phpMyAdmin il me donne le message d'erreur que la bibliothèque installée est différente à la version de MySql utilisé, j'ai suivi la réponse d'Otomatic tout en sauvegardant toutes mes bases de données en avance, le résultat est merveilleux tout marche bien et l'erreur a disparu.