Portada Bases de Datos Cómo Solucionar el problema «Unknown Collation» al Importar una Base de Datos en phpMyAdmin
Cuando trabajamos con bases de datos, trabajamos con datos de cotejamiento, para que el juego de caracteres que estamos usando en nuestro idioma, sea compatible con el resto.
Por lo general el cotejamiento no suele dar muchos problemas, una vez se ha establecido, pero como no hay un cotejamiento único, existen muchos en realidad, al importar una base de datos puede darnos algún problema.
También es posible que alguna actualización del software nos obligue a cambiar el cotejamiento de la base de datos que estemos utilizando.
En principio, cambiar el cotejamiento de una base de datos no es ningún problema, por ejemplo desde la herramienta phpMyAdmin, tal y como explicamos en esta guía.
El problema podemos tenerlo cuando queremos importar una base de datos y la herramienta, phpMyAdmin en este caso, no reconoce el cotejamiento.
Aquí tenemos un problema, ya que no podemos importar la base de datos en phpMyAdmin, que es la herramienta con la que podemos realizar el cambio de cotejamiento, entonces, ¿qué hacemos?
Para cambiar el cotejamiento de una base de datos, podemos hacerlo con un editor de texto.
Editores de texto hay muchos y tu ordenador seguro que tiene uno o más de uno instalado de serie, pero si quieres usar un potente y ligero editor de texto, capaz de realizar todas las acciones que le pidas, puedes utilizar el popular editor, Notepad++.
Como decimos, vale cualquier editor, sólo tiene que tener la posibilidad de trabajar con texto plano y que tenga la función de buscar y reemplazar todo.
Una vez tengas claro cuál es el editor que quieres usar, sólo tienes que abrir el archivo de la base de datos con el editor elegido, en nuestro caso, Notepad++.
Si la base de datos se encuentra comprimida en un archivo .zip o similar, deberás descomprimirla y trabajar sobre el fichero .sql.
Si quieres, puedes hacer una copia de seguridad del archivo, para que cuando lo edites, si algo sale mal, tengas una copia de la base de datos sin modificar.
Cuando el editor abra la base de datos, recuerda que no debes modificar nada a mano, seria muy tedioso y tendríamos muchas posibilidades de cometer un error.
Sólo tienes que buscar la opción de Buscar o Buscar y Reemplazar. Cada editor lo puede tener en un sitio distinto y en el caso de Notepad++, la opción correcta es Buscar > Reemplazar… o con el atajo de teclado CTRL + H.
En la ventana de opciones que nos aparecerá, sólo tenemos que completar los campos de:
Si te está preguntando qué tienes que poner en el apartado buscar, te lo habrá indicado antes phpMyAdmin, cuando te ha dicho que existía una «Collation desconocida» o «Unknown Collation».
En nuestro caso, el error es:
utf8mb4_0900_ai_ci
Así que si este es el cotejamiento que el sistema no acepta, lo podremos en el campo Buscar:
No debes poner comillas, espacios en blanco, ni ningún otro carácter, de lo contrario, no funcionará.
En el campo de Reemplazar:, vamos a utilizar un cotejamiento general y compatible con todo, que sería el siguiente:
utf8mb4_general_ci
Así que, en nuestro caso la cosa quedaría algo así:
Recuerda que en el campo de Buscar, tienes que poner el cotejamiento del error, mientras que en Reemplazar, la opción es la misma siempre.
Ahora sólo tienes que hacer click en la opción Reemplazar Todo, para que el editor se encargue de modificar los datos en el documento.
Esto es muy rápido, así en seguida verás que ha terminado y así te lo indicará en la parte inferior de la pantalla del buscador.
Ahora sólo tienes que cerrar el documento con la opción de Guardar los Cambios para que el cambio de cotejamiento sea efectivo.
Después de esto, vuelve a phpMyAdmin y vuelve a probar la importación de la base de datos y si todo ha ido bien, ya habrás importado la base de datos con el cotejamiento correcto.
Como has visto la operación es bastante sencilla de realizar, aunque la palabras «cotejamiento», «base de datos» o «phpMyadmin» nos asusten un poco, sólo hay que buscar y reemplazar un poco de texto.
Ten en cuenta que en una misma base de datos, pueden existir distintos cotejamientos.
Si al volver a realizar la operación sigue saliendo el error del cotejamiento, comprueba que sea distinto al que ya habías cambiado y vuelve a repetir la operación, pero buscando el nuevo cotejamiento no soportado.
Este problema ocurre porque se usa MariaDB en lugar de MySQL, ya que MySQL es propietario de una empresa y MariaDB es un proyecto Open Source.
MariaDB es altamente compatible con MySQL, por eso su uso es tan popular en todo el mundo, pero no al 100% y una de estas cosas no compatibles, es algunos tipos de cotejamiento, pero como has visto, la solución al error «Unknown Collation» es muy sencilla.
Si quieres saber más sobre MariaDB y MySQL, te recomendamos este artículo.