Matthieu
Bonjour,
alors j'ai un vieux serveur avec un site Web et une BD mysql 3.23
Je veux migrer le tout sur un nouveau serveur 4.1.16
La migration effectuée j'ai perdu bcp des accents sur mon site.
Dois je faire qqc pour les récuperer ?
la base a été remontée en tapant:
mysql -u root < toto.sql
ou alors je mets aussi un mysql 3.23 sur mon nouveau serveur.
a ce moment comment downgrader la version svp ?
Matthieu
celmir
personellement j'utilise phpmyadmin. Pour créér ma base et ne pas avoir de problème d'accent je spécifie latin1_bin pour le jeu de caractère. Je te conseille si tu peux faire des tests de dropper ta base et d'en recréer une soit avec phpmyadmin soit en utilisant la syntaxe suivante :
CREATE DATABASE `toto` DEFAULT CHARACTER SET latin1 COLLATE latin1_bin;
🙂
Matthieu
#CREATE DATABASE `Phoenix_` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
CREATE DATABASE `Phoenix_` DEFAULT CHARACTER SET latin1 COLLATE latin1_bin;
USE Phoenix_;
...
j'ai donc dropé ma base Phoenix_ et relancé mon mysql -u root <toto.sql
et ds phpmyadmin sur la base Pheonix_, je vois :
interclassement = latin1_swedish_ci
est ce normal ?
celmir
non va éditer ton toto.sql et vérifier si un jeu de caractères n'est pas spécifier. Autre chose si ton script commence par un drop de la bas et sa reconstruction, c'est dans le script que tu dois indiquer latin1_bin
Matthieu
non plus rien d'autres ds mon fichier sql.
que le premier de lcréation de la table
ce n'est pas le probleme de version qui peut posser ce probleme ?
celmir
je ne pense pas.
as-tu vraiment bien effectué un DROP DATABASE `toto`; qui a abouti ?
Matthieu
je l'ai fait ds phpmyadmin et apres je suis allé consulter les bases présentes :
-mysql
-test
puis pus rien
grosminet
Comment as tu migrer ta base ?
as tu fait un mysqldump avec quelle option
Le probleme des acces ne provient il pas plutot de ton developpement en php ?
SetH
moi j'utilise un character set binaire. par contre, tu peux migrer ta base en copiant simplement les fichiers de ta base vers le répertoire contenant les bases de ta nouvelle version de MySQL. Pas obligé d'utiliser un mysqldump.
grosminet
Ouvertement, les manuels de mysql precise que la migration doit être effectuée par mysqldump
Precisement, si ca fonctionne, cela m'interesserait car je fais un tar cvf de mes bases
mais ouvertement je pense que il y a un risque car les tables systemes peuvent être differents
Par exemple sur oracle c'est tres deconseille entre 8 et 9i
Si tu as reussi une migration des bases 3.23.53 INNODB vers MYSQL4.01, ton retour d'experience m'interesse.
Matthieu
j'ai fait la copie de ma base avec phpadmin.
Sous exporter, j'ai choisi la base que je voulais et zou un joli fichier sql en sortie.
pour importer : mysql -p root <toto.sql
et la ce n'est pas le meme format d'interclassement de la base,
càd que je suis passé de ??? vers latin1_swedish_ci(merci phpadmin)
Donc sous phpadmin, je veux changer l'interclassement gràce à l'onglet "opérations" et le mettreen latin_bin et ben merde ca ne fonctionne pas.
Donc la je craque un peu.
celmir
Je viens de créer encore une base en sélectionant latin1_bin, j'ai fais un import depuis un fichier sql puis je regarde le jeu de caractèresdes tables : il n'a pas changéééé :-D
je dirais que tu as soit une directive dans ton fichier sql qui modifie ton jeu soit tu as un bogue sur ton phpmyadmin . as-tu installé la dernière version ?