Problemas con las mayúsculas y minúsculas en tablas MySQL

Publicado el en la categoría Bases de Datos

Problemas con las mayúsculas y minúsculas en tablas MySQLEn numerosas ocasiones os hemos comentado la necesidad de trabajar y/o hacer pruebas en un entorno local en lugar de hacerlo directamente en el sitio en producción. Lo habitual es instalar un servidor web local y descargar los archivos y la base de datos para luego crearlo en nuestro sitio web de pruebas. De igual forma, puede darse contrario, de haber creado un sitio en local, y una vez terminado, queremos subirlo a nuestro servidor.

Sea cual sea la forma de traspasar los datos, puede darse el caso que nuestra web muestre errores o no funcione correctamente. Una de las causas que han podido provocar esta situación es el diferente uso que hacen los sistemas operativos con las mayúsculas y minúsculas. Si te has encontrado en esta situación, te recomendamos la lectura del siguiente artículo en el que te mostramos como solucionar los problemas con las mayúsculas y minúsculas en tablas MySQL.

¿Por qué sucede este error?

Para entender el error, hemos de comprender que la manera de trabajar de los sistemas operativos es diferente. Por ejemplo. Para un sistema Windows, Palabra y palabra son dos palabras iguales, mientras que en sistemas Unix y derivados se consideran distintas.

Por esta razón, la instalación de MySQL, tiene una opción de configuración diferente si se ha instalado en entornos Windows o en Unix.

¿Como me afecta?

Como hemos comentado, el problema viene cuando trabajamos con entornos diferentes y exportamos o importamos bases de datos. Si no controlamos este parámetro, nuestro base de datos puede interpretar las bases de datos como elementos diferentes en un sistema u en otro, y al cargar la web, se producen errores.

Solucionar los problemas con las mayúsculas y minúsculas en tablas MySQL

La solución será modificar la configuración de MySQL. Buscaremos my.cnf en sistemas Unix o my.ini en sistemas Windows. Dentro de este fichero de configuración, se encuentra la variable lower_case_table_names.

Por defecto en los sistemas Windows, la variable tiene valor 1, mientras que en Unix tiene valor 0. Deberemos modificar el valor de acuerdo a la siguiente tabla:

  • lower_case_table_names=0 Los nombres se crearán tal cual se ha especificado con los comandos CREATE TABLE o CREATE DATABASE, es decir, distinguiendo mayúsculas y minúsculas.
  • lower_case_table_names=1 Los nombres se crearán siempre en minúsculas, independientemente de como se escriban.
  • lower_case_table_names=2  Los nombres se crearán tal cual se ha especificado con los comandos CREATE TABLE o CREATE DATABASE, es decir, distinguiendo mayúsculas y minúsculas, pero las consultas, se realizarán convirtiendo los valores a minúsculas.

Deberemos tener en cuenta esta situación y realizar las modificaciones de configuración necesarias para evitar problemas al importar o exportar nuestra base de datos en sistemas diferentes.

Facebooktwittergoogle_plus