Domanda

stavo cercando di importare il mio backup dopo il cambiamento ive il charset a utf8 da latin1, ora durante il mio importazione ho ottenuto questo errore ERRORE 1071 (42000) alla riga 2137: specificata chiave è stata troppo a lungo; massima lunghezza della chiave è 1000 byte provare a cambiare my.cnf e impostare tutti i set di caratteri e la connessione al utf8, ma ora la fortuna, non voglio tornare a latin1 e so che questo risolverà il problema, ma il mio carcere utf8 alcun indizio? so latin 1 byte = 1 char e utf8 3 byte = 1 ..

È stato utile?

Soluzione

Si può passare da MyISAM a InnoDB, sembra risolvere il prob ..

Altri suggerimenti

Anche se UTF-8 non è sempre 3 byte per ogni carattere, MySQL sta riservando 3 byte per carattere per gli indici.

Se l'applicazione lo consente (vale a dire non è utilizzata in un vincolo UNIQUE KEY), ri-definire / modificare la tabella di utilizzare una chiave prefisso del lunghezza appropriata (cioè <1000/3).

CREATE TABLE my_table  .... my_field_20 KEY (my_field (20));

Utilizzare l'opzione --force nel comando mysqldump, ignorerà l'errore e continuare il backup.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top