Que dois-je faire si le fichier sql exporté par phpmyadmin est tronqué ?
La version de phpMyAdmin est 2.9.1.1
Utilisez phpMyAdmin pour sauvegarder la base de données Après l'avoir exportée, lors de sa restauration locale avec. sqlyog, L'erreur suivante s'est produite :
Error occured at:2009-03-03 10:09:43 Line no.:11154 Error Code: 1062 - Duplicate entry '??????' for key 2
Ouvrez le fichier sql et regardez-le. Le nom d'utilisateur membre sous la table des membres est tronqué, tous similaires à ???, ????, car de nombreux programmes sont maintenant. prend en charge le nom des utilisateurs chinois, et le nom d'utilisateur est unique. Une fois que le nom d'utilisateur chinois est tronqué, de nombreux noms d'utilisateur identiques apparaissent lorsque nous importons ces données tronquées, il existe déjà un nom d'utilisateur comme ?????? , donc si le second apparaît ci-dessous. , une erreur sera signalée
Si vous avez le contrôle du système, vous pouvez utiliser la commande suivante pour exporter les données, il n'y aura pas de caractères tronqués, et ce sera normal quand restauration
mysqldump -uroot -p --default-character-set=utf8 --set-charset --skip-opt dbname > newdbname.sql
Mais maintenant, je ne peux utiliser que phpMyAdmin pour exporter. Après de longs tests, j'ai découvert que si la langue de phpMyAdmin est "中文-chinois simplifié-gb2312", le fichier SQL exporté est gb2312. Certains tableaux contiennent des caractères chinois et les caractères chinois sont des caractères tronqués. Lorsque la langue de phpMyAdmin est « chinois-chinois simplifié (c'est-à-dire utf8) », le jeu de caractères du fichier SQL exporté est utf8 (utilisez Notepad++ pour afficher le format). , ce qui montre qu'il s'agit d'UTF-8 sans encodage au format BOM). Le chinois peut être affiché normalement
Par conséquent, afin d'éviter un chinois tronqué dans le fichier exporté, vous pouvez sélectionner chinois-chinois simplifié dans la liste déroulante Langue. -menu bas, puis sélectionnez exporter. Le chinois dans le fichier SQL téléchargé sera Il peut être affiché normalement.
Utilisez la commande suivante pour restaurer
mysql -uroot -p --default-character-set=utf8 newdbname < newdbname.sql
Je voulais à l'origine changer la langue par défaut de phpMyAdmin en "中文-chinois simplifié", mais j'ai essayé de modifier config.inc.php et config.default dans le répertoire des bibliothèques. .php est inutile, cela n'a pas d'importance. Après tout, différentes personnes choisissent des encodages différents pour la base de données. Certaines personnes doivent toujours resélectionner la langue, ou la laisser par défaut sur "中文-chinois simplifié-". gb2312" !
Une autre hypothèse est que le codage du fichier exporté est gb2312, vous pouvez donc envisager de convertir gb2312 en utf8. Cette méthode est en cours de test.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!