Installer « à la main » une nouvelle version de MySQL
Remarques importantes :
- Procédure valable uniquement pour une version MySQL de la
même branche que celle déjà installée (Branche 5.6.x)
- Pour éviter les problèmes, il est
impératif de déplacer vos bases de données en dehors de l'arborescence Wamp, c'est-à-dire autre part que dans "wamp/bin/mysql/mysql5.6.xx/data/". Vous n'aurez plus besoin de les déplacer pour toutes les mises à jour de MySQL et vous n'aurez plus de problèmes d'un éventuel écrasement de votre table users et vous ne perdrez pas vos bases en cas de suppression du dossier wamp.
Voir la procédure en (1) que vous
devez effectuer AVANT d'installer la nouvelle version (2).
- Après installation et validation d'une nouvelle version MySQL, il est
impératif d'effectuer la procédure de vérification et de mise à jour des bases de données - les votres et celles de MySQL - par la procédure
mysql_update.exe détaillée en (3)- Il est
impératif que la nouvelle version de MySQL soit compilée VC9 ou VC11
Si la version MySQL est compilée VC12 ou VC14 il est impératif d'installer AVANT les paquetages reditribuables VC12 et VC14
Voir point N° 20 de
Vérifications à effectuer(Les anciennes versions de MySQL sont compilées VC6 donc, incompatibles)
- Il est
impératif d'utiliser une version 64 bits si Apache et PHP sont en 64 bits
Quitter Wampserver.
--------------------------------------------------------
(1) - Déplacer les bases de données autre part que dans wamp/bin/mysql/mysql5.6.xx/dataNota : Procédure expliquée avec Wampserver installé sur C:\wamp
Adaptez les chemins en fonction de votre installation
-- Créer un dossier où vous voulez mettre vos bases de données, par exemple : G:\wwwbases
-- Déplacer
TOUS les fichiers et dossiers de C:\wamp\bin\mysql\mysql5.6.xx\data\ vers G:\wwwbases\
-- Éditer le fichier C:\wamp\bin\mysql\mysql5.6.xx\my.ini
---- Remplacer
datadir="C:/wamp/bin/mysql/mysql5.6.xx/data/"
---- Par
datadir="G:/wwwbases/"
ou, vous pouvez commenter la ligne d'origine et ajouter la vôtre :
#datadir= J:/wamp/bin/mysql/mysql5.6.xx/data
datadir=G:/wwwbases
Sauvegardez le fichier modifié.
-- Lancer Wampserver pour vérifier que les bases de données sont opérationnelles
Lors de la prochaine évolution de version de MySQL, il ne faudra pas oublier de modifier, comme ci-dessus, le fichier C:\wamp\bin\mysql\mysql5.6.xx\my.ini pour retrouver vos bases de données, vos utilisateurs et vos mots de passe.
--------------------------------------------------------
(2) - Installer une nouvelle version MySQL de la même brancheLes dernières versions Mysql sont disponibles à :
[
www.mysql.com]
Par exemple, pour mysql 5.6.26 télécharger l'archive :
mysql-5.6.26-win32.zip pour la version 32 bits
mysql-5.6.26-winx64.zip pour la version 64 bits
-------------------------------------------------
- Dézipper le fichier téléchargé dans C:\wamp\bin\mysql\ce qui va créer un dossier "mysql-5.6.26-win32 (ou mysql-5-6.26-win64)
--- Nota : La procédure de « dézippage » peut durer un « certain temps »
- Renommer ce dossier C:\wamp\bin\mysql\mysql5.6.26
- Dans ce dossier C:\wamp\bin\mysql\mysql5.6.26
-- Supprimer les dossiers (et leur contenu) docs, include, lib, mysql-test, scripts et sql-bench
- Depuis le dossier de votre version mysql active (C:\wamp\bin\mysql\mysql5.6.12\, copier dans C:\wamp\bin\mysql\mysql5.6.26 les fichiers my.ini et wampserver.conf
- Éditer le fichier wamp\bin\mysql\mysql5.6.26\my.ini pour y mettre les bons chemins de la nouvelle version :
(Chemins à adapter en fonction de votre installation)
basedir="C:/wamp/bin/mysql/mysql5.6.26/"
datadir ne doit pas être modifié puisqu'il pointe sur le dossier où vous avez déplacé vos bases en (1).
#Path to the language
lc-messages-dir=C:/Wamp/bin/mysql/mysql5.6.26/share
lc-messages=fr_FR
- Enregistrer le fichier my.ini modifié.
Lancer Wampserver
Basculer MySQL sur la nouvelle version détectée par Icône Wampserver, MySQL, Version, 5.6.26
-------------------------------------------------
(3) Effectuer la mise à jour des bases après évolution de version de MySQLComme pour toute nouvelle version MySQL, il faut vérifier et mettre à niveau les bases par une procédure mysql_update.exe.
- a - Dans le dossier contenant vos bases de données qui correspont au contenu de "datadir=...." du fichier "wamp\bin\mysql\mysql5.6.y\my.ini" (par défaut "wamp\bin\mysql\mysql5.6.y\data") mais qui
doit être autrepart, avez-vous un fichier mysql_upgrade_info ?
Nota :
- b - Contient-il "5.6.26" ? (Numéro de la version MySQL utilisée)
Si vous répondez NON à a ou NON à b, 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.
Vous devez donc exécuter le programme mysql_upgrade.exe qui permet de vérifier et éventuellement de modifier les tables qui le nécessite 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.6.y\my.ini".
Tout d'abord, il faut lancer le serveur MySql, donc lancer Wampserver et être basculé sur la nouvelle version de MySQL.
Ensuite, lancer une fenêtre de commande par démarrer, exécuter et taper
%SystemRoot%\system32\cmd.exe
- Nota : Cette fenêtre doit être lancée en tant qu'administrateur, donc dans la barre de titre vous devez voir le mot Administrateur.
Se placer dans le dossier bin de mysql 5.6.26 soit, pour wamp :
wamp\bin\mysql\mysql5.6.26\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=
et attendre la fin de la procédure qui doit, normalement, indiquer OK pour chaque table.
Toutes les tables de toutes les bases de données doivent être OK, par exemple :
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.ndb_binlog_index OK
Il peut y avoir plusieurs avertissements du style :
Warning: Using a password on the command line interface can be insecure.
Ne pas en tenir compte, c'est normal.
-------------------------------------------------
Remarque importante concernant des versions MySQL de branche différentesSi vous utilisez Wampserver avec plusieurs versions de MySQL, de branches différentes, par exemple 5.6.26 et 5.5.35, après avoir effectué mysql_upgrade sur la branche 5.6.xy, vous ne pourrez pas utiliser, avec la version 5.5.xy, les bases mysql et performance_schema de la version 5.6.xy, c'est-à-dire que datadir du fichier my.ini de la version 5.5.xy ne peut pas pointer sur le même dossier que le datadir du my.ini de la version 5.6.xy.
Cela provient du fait que datadir ne permet pas de dissocier les bases internes de MySQL de vos propres bases de données.
Il faut donc laisser le datadir de la version 5.5.xy pointer sur le dossier par défaut datadir= C:/wamp/bin/mysql/mysql5.5.35/data et, dans ce dossier data créer des jonctions sur vos propres bases de données ce qui peut donner :
Répertoire de C:\wamp\bin\mysql\mysql5.5.35\data
28/05/2014 11:26 <REP> .
28/05/2014 11:26 <REP> ..
03/05/2014 16:24 <JONCTION> aviatechno [G:\wwwbases\aviatechno]
28/05/2014 11:24 917 DOMI.err
03/05/2014 16:24 <JONCTION> faqfra [G:\wwwbases\faqfra]
28/05/2014 11:24 18 874 368 ibdata1
28/05/2014 11:24 5 242 880 ib_logfile0
05/12/2013 18:42 5 242 880 ib_logfile1
03/05/2014 16:23 <REP> mysql
03/05/2014 16:23 <REP> performance_schema
03/05/2014 16:23 <REP> test
4 fichier(s) 29 361 045 octets
7 Rép(s) 260 744 462 336 octets libres
C:\wamp\bin\mysql\mysql5.5.35\data>
Une jonction est, en quelque sorte, un lien symbolique, mais sur un dossier.
Les liens symboliques fonctionnent :
- 1 - Fonctionne sur les systèmes suivants : Vista, Windows 7, Windows 8, 8.1, Windows 10, en 32 bit et 64 bit
- 1b - Peut fonctionner pour XP SP3 à condition d'ajouter des
pilotes pour les liens symboliques- 2 - Ne peut fonctionner qu'avec des disques et
partitions formattées NTFSNous allons nous servir des
liens symboliques et plus particulièrement des
jonctions de dossiers.
Comme cette possibilité fait partie du système d'exploitation, en l'occurrence Windows (gestion des fichiers et dossiers ou File System), ça fonctionne pour toutes les applications et logiciels sous Windows.
La commande (En ligne de commande) pour créer des jontions de dossier est
mklink dont l'aide (mklink /?) donne :
Microsoft Windows [version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.
C:\Windows\system32>mklink /?
Crée un lien symbolique.
MKLINK [[/D] | [/H] | [/J]] Lien Cible
/D Crée un lien symbolique vers un répertoire. Par défaut,
il s'agit d'un lien symbolique vers un fichier.
/H Crée un lien réel à la place d'un lien symbolique.
/J Crée une jonction de répertoires.
Lien Spécifie le nom du nouveau lien symbolique.
Cible Spécifie le chemin d'accès (relatif ou absolu) auquel
le nouveau lien fait référence.
C:\Windows\system32>
Supposons :
- a - Wampserver installé dans C:\wamp, donc le dossier des bases de données pour mysql 5.5.35 est est C:\wamp\bin\mysl\mysql5.5.35\data\
- b - Les bases de données pour mysql 5.6.26 déplacées dans G:\wwwbases\
Les jontions doivent être créées dans le dossier C:\wamp\bin\mysl\mysql5.5.35\data\, donc, il faut ouvrir un fenêtre de commande sur ce dossier. Ça peut être effectué via l'Explorateur de fichiers, Maj-Clic-Droit sur le nom du dossier C:\wamp\bin\mysl\mysql5.5.35\data\ puis choisir
Ouvrir une fenêtre de commande iciDans la fenêtre de commande, nous allons taper :
mklink /J "nom-de-ma-base" "G:\wwwbases\nom-de-ma-base" puis Entrée
Créer les jonctions « à la main par ligne de commande » est fastidieux et source d'erreur, c'est pourquoi je vous propose ou plutôt
Hermann Schinagl, Felix Kasza, Jean-Pierre Bergamin, Travis Illig, Mark Russinovich, Philip Daniels, Daniel Thibault, Masatoshi Kimura vous proposent un outil performant qui peut créer les jonctions sans ligne de commande, directement à partir de l'Explorateur ou de Total Commander ; il s'agit de
Link Shell ExtensionUn fois installée, cette extension du système fonctionne de la mamière suivante, tout du moins pour ce qui nous intéresse, les jonctions (Pour le reste, lire la documentation afférente).
- 1 - Lancer l'Explorateur
- 2 - Choisir la 1re cible : G:\wwwbases\nom-de-ma-base
- 3 - Clic-Droit sur cette cible, puis
Prendre comme cible du lien- 3 - C:\wamp\bin\mysl\mysql5.5.35\data\
- 4 - Clic-Droit sur le dossier ci-dessus puis
Coller... Une jonctionRecommencer 2 à 4 avec les autres cibles.
On peut aussi effectuer un clic-droit glissé/déposé et choisir "Déposer ici... Une jonction"
Si il y en a beaucoup à faire, il est bon d'ouvrir deux Explorateurs avec le second toujours sur C:\wamp\bin\mysl\mysql5.5.35\data\
(De base, Total Commander ouvre deux fenêtres côte-à-côte).