# Migration MySQL 5.1 à 5.5

**URL:** <https://www.debian-fr.org/t/migration-mysql-5-1-a-5-5/60730>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 7:42 UTC](https://www.debian-fr.org/t/migration-mysql-5-1-a-5-5/60730 "2016-02-21T19:42:58Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 21, 2016, 7:42 UTC](https://www.debian-fr.org/t/migration-mysql-5-1-a-5-5/60730/1 "2016-02-21T19:42:58Z")

</div>

Sur un serveur que je maintiens de temps en temps (qui utilise un panel d’administration), durant un upgrade MySQL server est passé en version 5.5  
Il se trouve que cette version semble avoir un ‘bug’ (en gros si vous pouvez attendre …) une fois le serveur mis à jour, il y a de grande chance que vous ne puissiez plus vous connecter avec comme message :

```auto
error 1524 Plugin 'none' is not loaded
```

Ce problème apparaît quand un programme a ajouté des colonnes à la table user de la base `mysql`  
Suite à l’analyse trouvée sur le site : [jawama](http://www.jawama.com/informatique/mysql/mysql-plugin-none-is-not-loaded) j’ai du effectivement changer l’ordre des colonnes !! (moi j’appelle ça un bug …)  
Mais comment exécuter des requêtes SQL quand on ne peut pas se connecter ???

- Trouver un autre PC ou vous pouvez installer un Mysql-Server 5.5 (on va l’appeler serveur ‘bis’)
- Sur votre serveur malade arrêter MySQL (à grand coup de kill -9, je n’ai pas trouvé d’autres solutions) :

```auto
# ps -aef | grep mysql | grep -v "grep"
root 5140 1 0 janv.02 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe
mysql 5364 5140 0 janv.02 ? 00:00:26 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin
# kill -9 5140 (Exemples à adapter bien entendu)
# kill -9 5364
```

- Déplacer le schéma ‘mysql’ vers ‘mysql2’ (ça paraît brutal, mais à mon grand étonnement ça fonctionne)

```auto
# mv /var/lib/mysql/mysql /var/lib/mysql/mysql2
```

- Recopier le schéma mysql de ‘bis’

```auto
# scp -r root@bis:/var/lib/mysql/mysql /var/lib/mysql
# chown mysql:mysql /var/lib/mysql/mysql -R
# service mysql restart
```

Si le but est juste de redémarrer MySQL, on peut s’arrêter la.  
S’il faut adapter l’ancien schéma, alors on continu.

```auto
# mysql -u root -p (si vous avez défini un mot de passe pour root sur bis)
mysql> use mysql2
mysql> ALTER TABLE `user` MODIFY COLUMN `plugin` CHAR(64) COLLATE utf8_bin DEFAULT '' AFTER `max_user_connections`;
mysql> ALTER TABLE `user` MODIFY COLUMN `authentication_string` TEXT COLLATE utf8_bin AFTER `plugin`;
mysql> quit
# service mysql stop
# mv /var/lib/mysql/mysql /var/lib/mysql/mysql3
# mv /var/lib/mysql/mysq2 /var/lib/mysql/mysql
# mv /var/lib/mysql/mysql3 /var/lib/mysql/mysql2
# service mysql start
```

Voilà une grosse bidouille pour commencer l’année !

---

<div class="post-metadata">

**Author:** ![Kristy](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/4da419/32.png) [@Kristy](https://www.debian-fr.org/u/Kristy)\
**Post date:** [Février 21, 2016, 7:43 UTC](https://www.debian-fr.org/t/migration-mysql-5-1-a-5-5/60730/2 "2016-02-21T19:43:22Z")

</div>

Intéressant dis donc, _note perso ne pas MAJ mysql de suite 😛_  
par contre cela ne t’as pas générer des problèmes avec les users de tes bases ?

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 21, 2016, 7:43 UTC](https://www.debian-fr.org/t/migration-mysql-5-1-a-5-5/60730/3 "2016-02-21T19:43:23Z")

</div>

Une fois que tu restaures correctement le schéma MySQL, tout revient normal.

---

<div class="post-metadata">

**Author:** ![Kristy](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/4da419/32.png) [@Kristy](https://www.debian-fr.org/u/Kristy)\
**Post date:** [Février 21, 2016, 7:43 UTC](https://www.debian-fr.org/t/migration-mysql-5-1-a-5-5/60730/4 "2016-02-21T19:43:39Z")

</div>

Que désignes tu par les schémas mysql ? 😲  
Tout ce qui est contenu dans le répertoire /var/lib/mysql ?

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 21, 2016, 7:43 UTC](https://www.debian-fr.org/t/migration-mysql-5-1-a-5-5/60730/5 "2016-02-21T19:43:40Z")

</div>

C’est pour faire une analogie avec Oracle (vu que c’est la même société), mais tu peux remplacer par “base”, ce que je voulais dire c’est à mon grand étonnement, tu copies une base ‘truc’ en ‘machin’ (c’est à dire renommer le dossier dans /usr/lib/mysql) et ça suffit à changer le nom de la base. C’est grâce à ça que j’ai pu redémarrer MySQL après avoir recopié le dossier (et son contenu) ‘/usr/lib/mysql/mysql’ d’un autre serveur.
