[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Passage de mysql 4.0 vers 4.1 et à fortiori vers 5.0



Bonjour,

Mon serveur est encore sous sarge, et passera bientot en etch.

Debian etch utilise mysql 5, et à partir de mysql 4.1,
l'encodage dans mysql est en utf8.

J'utilise actuellement la version 4.0.24-10sarge2 de mysql-server.

J'ai lu qu'il faut apparemment passer en mysql 4.1 avant de passer en 5.

Voici les étapes que j'ai lu sur un tuto de gentoo:

1 - Création d'une copie des données:

# mysqldump \
  -uroot \
  --password='mot_de_passe' \
  -hlocalhost \
  --all-databases \
  --opt \
  --allow-keywords \
  --flush-logs \
  --hex-blob \
  --master-data \
  --max_allowed_packet=16M \
  --quote-names \
  --result-file=BACKUP_MYSQL_4.0.SQL

Apparemment, il faut prendre toutes les bases y compris la base "mysql", qui doit être aussi convertie en utf8.

2 - Supprimer ces données:

# tar cjpvf ~/mysql.$(date +%F"T"%H-%M).tar.bz2 /etc/mysql/my.cnf /var/lib/mysql/
# ls -l ~/mysql.*
# rm -rf /var/lib/mysql/ /var/log/mysql


3 - Installer la 4.1


4 -  Conversion du dump sql d'iso en utf8

(De latin1 vers l'utf8)
$ iconv -f ISO-8859-15 -t UTF-8 file1.sql > file2.sql


5 - Reimporter les données:

# cat BACKUP_MYSQL_4.0.SQL \
     | mysql \
     -uroot \
     --password='mot_de_passe' \
     -hlocalhost \
     --max_allowed_packet=16M

# mysql_fix_privilege_tables \
     --defaults-file=/etc/mysql/my.cnf \
     --user=root \
     --password='mot_de_passe'


Par contre au tout début de l'étape 5, ils disent:

"Des fonctionnalités plus anciennes de mysqldump peuvent exporter les tables dans un mauvais ordre si des clefs étrangères sont impliquées. Pour contourner ce problème, ajouter à la requête SQL les reports suivants :

Exemple de code 4.5 : Réparation du contrôle des clefs étrangères

SET FOREIGN_KEY_CHECKS=0
SET FOREIGN_KEY_CHECKS=1"

Est-ce que vous avez fait cela aussi et si oui, ca se rajoute où exactement, je ne comprends pas trop?

Quelqu'un a t'il déjà donc essayé tout cela en me confirmant que ca amrche nikel?

Apparemment, le plus gros du boulot serait fait en passsant de 4.0 en 4.1.

Sinon de 4.1 vers 5.0, on aurait plus grand chose à faire vu qu'on est déjà en utf8 ou bien sinon peut-être juste le "mysql_fix_privilege_tables" pour fixer les permisssions?

Merci :-)





Reply to: