2015-04-28 5 views
5

Ho lavorato su un sito in locale e su distribuzione al server del mio cliente mi sono imbattuto l'erroreProblema di collazione, è possibile eseguire il downgrade/conversione da utf8mb4_unicode_ci a utf8_general_ci?

MySQL detto: Documentazione

'# 1273 - Unknown collazione: 'utf8mb4_unicode_ci'

MySQL Error

Dopo un sacco di scavare so che questa è la versione di MySQL correlate, la mia MySQL locale è 5,5, mentre il server è 5.1 che non supporta utf8m b4_unicode_ci. Sfortunatamente, non c'è nulla che io possa fare per aggiornare la versione MySQL del server.

Quindi la mia domanda è, c'è comunque posso convertire il mio database corrente in qualcosa che MySQL 5.1 dovrebbe supportare?

+0

Se si è certi che si utilizzano solo caratteri inclusi in utf8, è possibile trovare e sostituire i riferimenti a utf8mb4 nel file di testo sql. L'ho fatto quando si spostava una tabella da un database ospitato in mysql 5.5 ad un'altra usando mysql 5.1. Ho usato il comando 'sed -i 's/utf8mb4/utf8/g' my_table.sql' – Reflexorozy

+0

Questo è utile, lo ricorderemo per la prossima volta (visto troppo tardi) – ChiWaiLi

risposta

3

"Nel frattempo", 5.1 ha CHARACTER SET utf8 COLLATE utf8_unicode_ci.

Questo è compatibile con utf8mb4 in quanto utf8 è un sottoinsieme di utf8mb4. Alcuni caratteri cinesi, alcune emoticon e alcune altre cose mancano dallo utf8. In caso contrario, i due set di caratteri e le regole di confronto funzionano in modo identico.

è stato aggiunto per la prima volta alla Versione 5.5.3 nel marzo 2010. Consigliamo l'aggiornamento.

+0

Questo ha fatto il trucco @Rick, grazie. Ho dovuto pulire qualche personaggio cinese qua e là, troppo tempo, ma almeno funziona. Mi piacerebbe aggiornare il server, ma sono bloccato sulla società di hosting del cliente che si rifiuta di evolversi. – ChiWaiLi