ERREUR mysql 1071 (clé Spécifié est trop long; max la longueur de la clé est de 1000 octets) en simple dump-importation de réglage

dump de la db mysql sur le serveur 1

$ mysql --version
mysql  Ver 14.14 Distrib 5.1.54, for debian-linux-gnu (x86_64) using readline 6.2
$ mysqldump -u root -p db > db.sql

importer sur le serveur 2

$ mysql --version
mysql  Ver 14.12 Distrib 5.0.95, for unknown-linux-gnu (x86_64) using readline 5.1
$ mysql -u root -p db < db.sql
ERROR 1071 (42000) at line 807: Specified key was too long; max key length is 1000 bytes

Je sais il y a beaucoup de questions et de réponses sur cette erreur, mais il me laisse encore perplexe.

Peut-il être un problème de version? Je le soupçonne pas.

Si je le lance avec l'option --force, il obtient la même wierder:

ERROR 1071 (42000) at line 807: Specified key was too long; max key length is 1000 bytes
ERROR 1146 (42S02) at line 847: Table 'db.users' doesn't exist
ERROR 1146 (42S02) at line 848: Table 'db.users' doesn't exist
ERROR 1146 (42S02) at line 849: Table 'db.users' doesn't exist
ERROR 1146 (42S02) at line 850: Table 'db.users' doesn't exist

ce qui se passe?

Je veux dire en dehors de la résolution de ce, j'aimerais comprendre quels sont les paramètres qui affectent un simple dump-importation de loi et pourquoi ces paramètres est pas explicite dans mon fichier de vidage et d'être ensemble t d'importation.

Je préfère ne pas avoir à déboguer les erreurs réelles, ce doit être solveable de haut niveau.

MISE À JOUR: SOLUTION
Frédéric m'a indiqué la bonne direction. Fondamentalement, mon dump est d'essayer de mettre en db avec le moteur INNODB, mais mysql sur le serveur 2 a dans /etc/my.cnf

[mysqld]
skip-innodb

par la simple suppression de cette option et de redémarrer mysqld, mon importation couru sans un croassement.
Je suis très triste une telle chose simple comme un indisponible moteur n'est pas digne d'avertissement ou d'erreur plutôt que de la longueur de la clé causée par silencieusement tomber en myISAM. Hmm. Donc le temps de passer à posgresql? mongo? 🙂

  • Êtes-vous d'utiliser innodb? Est innodb activé sur les deux machines ? (cochez la has_innodb variable dans la sortie de show variables)
  • OUI sur le serveur 1, DÉSACTIVÉ sur le serveur 2.
InformationsquelleAutor Viktor Trón | 2012-06-03