# 1273 - Cotejo desconocido: 'utf8mb4_unicode_520_ci'


157

Tengo un sitio web de WordPress en mi servidor WAMP local . Pero cuando subo su base de datos al servidor en vivo, recibo un error

#1273  Unknown collation: utf8mb4_unicode_520_ci

¡Cualquier ayuda sería apreciada!


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

44
En un mar de soluciones de buscar y reemplazar a continuación, no olvide consultar primero la respuesta de @ SherylHohman: solo actualice a mariadb / mysql 5.6 para que su servidor admita esta clasificación.
squarecandy


También hay una guía rápida aquí ( wpza.net/unknown-collation-utf8mb4_unicode_520_ci ) que explica todos los 3 pasos que debe seguir para asegurarse de que ha hecho todo.
WPZA

Compruebe esta solución aquí para # 1273 - Cotejo desconocido: 'utf8mb4_0900_ai_ci' freakyjolly.com/…
Code Spy

Respuestas:


217

Puedes resolver esto encontrando

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

en su .sqlarchivo, e intercambiándolo con

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

28
Recomiendo la respuesta de Sabba ( stackoverflow.com/a/44122258/168309 ) ya que conserva el utf8mb4
Amir

55
La solución a continuación de @Sabba Keynejad es mejor en mi opinión, ya que mantiene el mb4, deberías probar eso primero.
Maor Barazany

Tenga en cuenta que tuve que reemplazar esto en varios lugares en el archivo SQL. También hubo lugares donde tuve que hacer stackoverflow.com/a/44122258/1436129 a continuación también.
aubreypwd

En realidad, esta respuesta funcionó cuando la respuesta vinculada de Sabba no. Presumiblemente debido a mis valores predeterminados de instalación de MySql. +1
Codificación desaparecida

no está funcionando, ahora está dando error: COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' he reemplazado utf8mb4_unicode_520_cicon utf8mb4_unicode_ciy está funcionando, según la respuesta de Sabba.
Haritsinh Gohil

286

Creo que este error se debe a que el servidor local y el servidor en vivo están ejecutando diferentes versiones de MySQL. Para resolver esto:

  1. Abra el archivo sql en su editor de texto
  2. Encuentra y reemplaza todo utf8mb4_unicode_520_ciconutf8mb4_unicode_ci
  3. Guardar y subir a una nueva base de datos mySql

Espero que ayudeingrese la descripción de la imagen aquí


44
INFIERNO NO !!! Se ha documentado ampliamente que utf8mb4_unicode_520_citiene mucho mejor soporte UTF-8 que utf8mb4_unicode_ci! Sauce: mysql.rjweb.org/doc.php/charcoll#best_practice con clarificación visual que demuestra que 520_ci es superior aquí: mysql.rjweb.org/utf8_collations.html
Juan

55
@John, los artículos que vinculaste realmente no defienden ese comentario. Su "Así" ni siquiera se puede expresar adecuadamente desde su premisa. En general, todo el artículo está mal escrito, aunque parece haber buena información allí. La clasificación 520 utiliza una versión más nueva del Algoritmo de clasificación Unicode (UCA - versión 5.2.0) con diferentes pesos, pero decir que "tiene mucho mejor soporte UTF-8" parece más que una exageración.
Gremio

Supongamos que un cuerpo de estándares (Unicode) generalmente hará que cada versión más nueva (5.20) sea "mejor" que una versión anterior (4.0).
Rick James

Esta es la mejor respuesta.
Niby

Sugiero esta solución porque reemplaza todas las ocurrencias "utf8mb4_unicode_520_ci". Mientras que la respuesta savani sandip deja algo.
Rakesh

49

En mi caso, resultó que mi
nuevo servidor se estaba ejecutando MySQL 5.5, el
antiguo servidor se estaba ejecutando MySQL 5.6.
Así que recibí este error al intentar importar el .sqlarchivo que había exportado desde mi antiguo servidor.

MySQL 5.5 no es compatible utf8mb4_unicode_520_ci, pero
MySQL 5.6 sí.

¡La actualización MySQL 5.6en el nuevo servidor resolvió la intercalación del error!

Si desea conservar MySQL 5.5, puede:
- hacer una copia de su .sqlarchivo exportado
- reemplazar instancias de utf8mb4unicode520_ciy utf8mb4_unicode_520_ci
... con utf8mb4_unicode_ci
- importar su .sqlarchivo actualizado .


2
Esta es absolutamente la mejor manera de hacerlo si tiene control total sobre su servidor. Actualice el nuevo servidor para que coincida con el servidor anterior. Si no tiene acceso para actualizar la ubicación de su nuevo servidor, el método de buscar y reemplazar probablemente estará bien, pero en cualquier caso en el que pueda hacer esta actualización, debería hacerlo.
squarecandy

1
5.6 es cuando se agregó 520 .
Rick James

Esta debería ser la respuesta correcta. La mayoría de las otras soluciones son más como hacks. Gracias @SherylHohman
sawyerrken

30

Abra el archivo sql en su editor de texto;

1. Buscar: utf8mb4_unicode_ci Reemplazar: utf8_general_ci (Reemplazar todo)

2. Buscar: utf8mb4_unicode_520_ci Reemplazar: utf8_general_ci (Reemplazar todo)

3. Buscar: utf8mb4 Reemplazar: utf8 (Reemplazar todo)

¡Guarda y sube!


Estoy muy contento de haber encontrado su solución a esto, he estado recibiendo este error # 1273 durante días y simplemente no pude encontrar una solución para esto
flying-dev

Salvador de la vida. ¡Gracias!
robbclarke


14

fácil de reemplazar

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

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


6

encontrar y reemplazar:

utf8mb4_unicode_520_ci

con

utf8_general_ci

en todo el archivo sql


3
generaly utf8son ambos pasos hacia atrás.
Rick James

3

Tarde a la fiesta, pero en caso de que esto ocurra con una WORDPRESSinstalación:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

En phpmyadmin, en export method> Format-specific options(exportación personalizada)

Ajustado a : MYSQL40

Si intenta importar ahora, es posible que reciba otro mensaje de error:

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

Esto se debe a TYPEque la opción anterior que era sinónimo ENGINEse eliminó en MySQL 5.5.

Abra su .sqlarchivo, busque y reemplace todas las instancias

desde TYPE=hastaENGINE=

Ahora la importación debería ir sin problemas.


3

Obteniendo el error de intercalación # 1273 - Intercalación desconocida: 'utf8mb4_unicode_520_ci' es causado por la diferencia de la versión de MySQL desde la que exporta y nuestro servidor MySQL al que importa. Básicamente, la biblioteca de Wordpress para las versiones más recientes verifica en qué versión de SQL se está ejecutando su sitio. Si utiliza MySQL versión 5.6 o más, supone el uso de un nuevo y mejorado Algoritmo de clasificación Unicode (UCA) llamado "utf8mb4_unicode_520_ci". Esto es excelente a menos que termine moviendo su sitio de WordPress de una versión 5.6 más reciente de MySQL a una versión anterior, anterior a 5.6 de MySQL.

Para resolver esto, deberá editar su archivo de exportación SQL y realizar una búsqueda y reemplazo, cambiando todas las instancias de 'utf8mb4_unicode_520_ci' a 'utf8mb4_unicode_ci'. O siga los pasos a continuación si tiene un PHPMyAdmin:

  1. Haga clic en la pestaña Exportar para la base de datos
  2. Haga clic en el botón de radio Personalizado.
  3. Vaya a la sección titulada Opciones específicas de formato y cambie el menú desplegable para el Sistema de base de datos o el servidor MySQL anterior para maximizar la compatibilidad de salida con: de NINGUNO a MYSQL40.
  4. Desplácese hasta la parte inferior y haga clic en IR.

1

En mi caso lo sustituyo utf8_general_cicon sed así:

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 

Después de eso, puedo importarlo sin ningún problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.