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.
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:
Abra el archivo sql en su editor de texto
Encuentra y reemplaza todo utf8mb4_unicode_520_ciconutf8mb4_unicode_ci
@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 .
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
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
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:
Haga clic en la pestaña Exportar para la base de datos
Haga clic en el botón de radio Personalizado.
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.
Desplácese hasta la parte inferior y haga clic en IR.
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Respuestas:
Puedes resolver esto encontrando
en su
.sql
archivo, e intercambiándolo confuente
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'
he reemplazadoutf8mb4_unicode_520_ci
conutf8mb4_unicode_ci
y está funcionando, según la respuesta de Sabba.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:
utf8mb4_unicode_520_ci
conutf8mb4_unicode_ci
Espero que ayude
fuente
utf8mb4_unicode_520_ci
tiene mucho mejor soporte UTF-8 queutf8mb4_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.htmlEn mi caso, resultó que mi
nuevo servidor se estaba ejecutando
MySQL 5.5
, elantiguo servidor se estaba ejecutando
MySQL 5.6
.Así que recibí este error al intentar importar el
.sql
archivo que había exportado desde mi antiguo servidor.MySQL 5.5 no es compatible
utf8mb4_unicode_520_ci
, peroMySQL 5.6 sí.
¡La actualización
MySQL 5.6
en el nuevo servidor resolvió la intercalación del error!Si desea conservar MySQL 5.5, puede:
- hacer una copia de su
.sql
archivo exportado- reemplazar instancias de
utf8mb4unicode520_ci
yutf8mb4_unicode_520_ci
... con
utf8mb4_unicode_ci
- importar su
.sql
archivo actualizado .fuente
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!
fuente
simplemente elimine "520_"
utf8mb4_unicode_520_ci
→utf8mb4_unicode_ci
fuente
fácil de reemplazar
fuente
sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Acabo de abrir el archivo dump.sql en Notepad ++ y presioné CTRL + H para buscar y reemplazar la cadena " utf8mb4_0900_ai_ci " y la reemplacé con " utf8mb4_general_ci ". Enlace de origen https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/
fuente
encontrar y reemplazar:
con
en todo el archivo sql
fuente
general
yutf8
son ambos pasos hacia atrás.Tarde a la fiesta, pero en caso de que esto ocurra con una
WORDPRESS
instalació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
TYPE
que la opción anterior que era sinónimoENGINE
se eliminó en MySQL 5.5.Abra su
.sql
archivo, busque y reemplace todas las instanciasdesde
TYPE=
hastaENGINE=
Ahora la importación debería ir sin problemas.
fuente
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:
fuente
En mi caso lo sustituyo
utf8_general_ci
con sed así:Después de eso, puedo importarlo sin ningún problema.
fuente