# 1273 - Fascicolazione sconosciuta: 'utf8mb4_unicode_520_ci'


157

Ho un sito Web WordPress sul mio server WAMP locale . Ma quando carico il suo database sul server live, ricevo un errore

#1273  Unknown collation: utf8mb4_unicode_520_ci

Qualsiasi aiuto sarebbe apprezzato!


37
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Nabil Kadimi,

4
In un mare di soluzioni trova e sostituisci di seguito, non dimenticare di controllare prima la risposta di @SylylHohman - basta aggiornare a mariadb / mysql 5.6 in modo che il tuo server supporti questo confronto.
squarecandy


C'è anche una guida rapida qui ( wpza.net/unknown-collation-utf8mb4_unicode_520_ci ) che spiega tutti i 3 passaggi che dovresti prendere per assicurarti di aver fatto tutto.
WPZA,

Controlla questa soluzione qui per # 1273 - Fascicolazione sconosciuta: 'utf8mb4_0900_ai_ci' freakyjolly.com/…
Codice spia

Risposte:


217

Puoi risolvere questo trovando

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

nel .sqlfile e scambiarlo con

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

28
Consiglio la risposta di Sabba ( stackoverflow.com/a/44122258/168309 ) in quanto conserva utf8mb4
Amir,

5
La soluzione seguente di @Sabba Keynejad è migliore secondo me, dal momento che mantiene l'MB4, dovresti provare prima.
Maor Barazany,

Nota, ho dovuto sostituire questo in più punti nel file SQL. Inoltre c'erano dei posti in cui dovevo fare stackoverflow.com/a/44122258/1436129 anche qui sotto.
aubreypwd,

In realtà trovato questa risposta ha funzionato quando la risposta collegata di Sabba no. Presumibilmente a causa delle impostazioni predefinite dell'installazione di MySql. +1
Codifica andata il

non funziona, ora sta dando errore COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' :, ho sostituito utf8mb4_unicode_520_cicon utf8mb4_unicode_cie funziona, secondo la risposta di Sabba.
Haritsinh Gohil,

286

Credo che questo errore sia causato dal fatto che il server locale e il server live eseguono versioni diverse di MySQL. Per risolvere questo:

  1. Apri il file sql nel tuo editor di testo
  2. Trova e sostituisci tutto utf8mb4_unicode_520_ciconutf8mb4_unicode_ci
  3. Salva e carica su un nuovo db mySql

spero che aiutiinserisci qui la descrizione dell'immagine


4
DIAVOLO, NO!!! È stato ampiamente documentato che utf8mb4_unicode_520_ciha un supporto UTF-8 molto migliore di utf8mb4_unicode_ci! Salsa: mysql.rjweb.org/doc.php/charcoll#best_practice con chiarimento visivo dimostrando che 520_ci è superiore qui: mysql.rjweb.org/utf8_collations.html
John

5
@John, gli articoli che hai collegato non difendono davvero quel commento. Il loro "Così" non può nemmeno essere correttamente affermato dalla loro premessa. Nel complesso l'intero articolo è scritto male, anche se sembra che ci siano alcune buone informazioni lì. Le regole di confronto 520 utilizzano una versione più recente dell'algoritmo di confronto Unicode (UCA - versione 5.2.0) con pesi diversi, ma dire che "ha un supporto UTF-8 molto migliore" sembra più che un allungamento.
Gremio,

Supponiamo che un corpo Standard (Unicode) renderà di solito ogni versione più recente (5.20) "migliore" di una versione precedente (4.0).
Rick James,

Questa è la risposta migliore
Niby,

Suggerisco questa soluzione perché sostituisce tutte le occorrenze "utf8mb4_unicode_520_ci". Mentre Savani Sandip risponde lascia un po '.
Rakesh,

49

Nel mio caso risulta che il mio
nuovo server era in esecuzione MySQL 5.5, il
vecchio server era in esecuzione MySQL 5.6.
Quindi ho riscontrato questo errore durante il tentativo di importare il .sqlfile che avevo esportato dal mio vecchio server.

MySQL 5.5 non supporta utf8mb4_unicode_520_ci, ma
MySQL 5.6 lo supporta .

L'aggiornamento MySQL 5.6sul nuovo server ha risolto l'errore di confronto!

Se si desidera conservare MySQL 5.5, è possibile:
- creare una copia del .sqlfile esportato
- sostituire istanze di utf8mb4unicode520_cie utf8mb4_unicode_520_ci
... con utf8mb4_unicode_ci
- importare il .sqlfile aggiornato .


2
Questo è assolutamente il modo migliore per farlo se hai il pieno controllo del tuo server. Aggiorna il nuovo server in modo che corrisponda al vecchio server. Se non si dispone dell'accesso per aggiornare la nuova posizione del server, il metodo find-replace sarà probabilmente corretto, ma in ogni caso in cui è possibile eseguire questo aggiornamento, è necessario.
squarecandy

1
5.6 è quando è stato aggiunto 520 .
Rick James,

Questa dovrebbe essere la risposta corretta. La maggior parte delle altre soluzioni sono più simili agli hack. Grazie @SherylHohman
sawyerrken,

30

Apri il file sql nel tuo editor di testo;

1. Cerca: utf8mb4_unicode_ci Sostituisci: utf8_general_ci (Sostituisci tutto)

2. Cerca: utf8mb4_unicode_520_ci Sostituisci: utf8_general_ci (Sostituisci tutto)

3. Cerca: utf8mb4 Sostituisci: utf8 (Sostituisci tutto)

Salva e carica!


Sono davvero felice di aver trovato la tua soluzione a questo, sto ricevendo questo errore # 1273 da giorni e non sono riuscito a trovare una soluzione a questo
flying-dev

Salvavita. Grazie!
robbclarke,


14

facile da sostituire

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql

2
Su macOS:sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Osvaldas,


6

trova e sostituisci:

utf8mb4_unicode_520_ci

con

utf8_general_ci

in tutto il file sql


3
generale utf8sono entrambi i passi indietro.
Rick James,

3

In ritardo alla festa, ma nel caso ciò accada con WORDPRESSun'installazione:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

In phpmyadmin, sotto export method> Format-specific options(esportazione personalizzata)

Impostato : MYSQL40

Se proverai a importare ora, ora potresti ricevere un altro messaggio di errore:

1064 - You have an error in your SQL syntax; .....

Questo perché l' TYPEopzione precedente che era sinonimo di è ENGINEstata rimossa in MySQL 5.5.

Apri il tuo .sqlfile, cerca e sostituisci tutte le istanze

da TYPE=aENGINE=

Ora l'importazione dovrebbe procedere senza intoppi.


3

Errore di collazione # 1273 - Fascicolazione sconosciuta: "utf8mb4_unicode_520_ci" è causato dalla differenza tra la versione di MySQL da cui si esporta e il nostro server MySQL in cui si importa. Fondamentalmente, la libreria di Wordpress per la versione più recente controlla per quale versione di SQL è in esecuzione il tuo sito. Se utilizza MySQL versione 5.6 o successiva, presuppone l'utilizzo di un nuovo e migliorato Unicode Collation Algorithm (UCA) chiamato "utf8mb4_unicode_520_ci". Questo è fantastico a meno che non finisca per spostare il tuo sito WordPress da una nuova versione 5.6 di MySQL a una versione precedente, la 5.6 precedente di MySQL.

Per risolvere questo problema, dovrai modificare il file di esportazione SQL ed eseguire una ricerca e una sostituzione, cambiando tutte le istanze di "utf8mb4_unicode_520_ci" in "utf8mb4_unicode_ci". Oppure segui i passaggi seguenti se hai un PHPMyAdmin:

  1. Fare clic sulla scheda Esporta per il database
  2. Fai clic sul pulsante di opzione Personalizzato.
  3. Vai alla sezione intitolata Opzioni specifiche del formato e modifica il menu a discesa per Sistema di database o server MySQL precedente per massimizzare la compatibilità dell'output con: da NONE a MYSQL40.
  4. Scorri verso il basso e fai clic su GO.

1

Nel mio caso lo sostituisco utf8_general_cicon sed in questo modo:

sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql 
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql 

Successivamente, posso importarlo senza alcun problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.