3 comentarios

case sensitive MySQL

En dias pasados tuve que echar a andar un sistema en linux, el cual esta hecho en php – Flex, con WebOrb para conectarlos y que utiliza MySQL para la base de datos, anteriormente corria en windows sobre wamp, pues aparentemente todo esta bien al principio hasta que algunas funcionalidades no se ejecutaban como debieran.

El proceso de encontrar cual era el error fue algo fustrante ya que como tienes varias tecnologias integradas me imaginaba mil cosas(configuración, problema de versiones, etc.), lo primero fue checar el log de apache el cual me decia que habia errores con variables no declaradas y ademas con una función; ‘mysql_fetch_array’ para ser exactos, el hecho es que no me explicaba porque el codigo se estaba ejecutando bien en windows pero en linux no, lo cual se me hizo muy raro, pase un par de dias tratando de encontrar cual era el bendito error hasta que en un foro me comentaron hacerca de algo que se llama case sensitive y que en ocaciones causaba problemas con posgreSQL, entonces me puse a investigar y resulto que si, he aqui el resultado:

Pues resulta que el mysql en windows por default no distingue entre mayusculas y minusculas en nombres de campos y tablas en una consulta, pero linux si, (esto me recuerda al detalle de manejo de directorios en ambas plataformas), asi que la solución era cambiar esta variable para que en linux tambien lo ignorara, si alguna vez les pasa hagan lo siguiente:

1. primero paramos el servicio de mysql
$ sudo  /etc/init.d/mysql stop2. editamos el archivo de my.cn y buscamos el apartado [mysqld]
$  vim /etc/mysql/my.cn

3. agregamos lo siguiente:
lower_case_table_names = 1

4. volvemos a iniciar el servicio de mysql y listo.
$ sudo /etc/init.d/mysql start

aqui un poco mas de información al respecto.

Conclusion, si vamos a utilizar consultas en crudo en una aplicación, tratar de siempre poner los nombres tal cual fueron creados, o mejor aun, no hacer un “tutifruti” de nombres :S.

saluuoos.

Anuncios

3 comentarios el “case sensitive MySQL

  1. Yo prefiero nombrar siempre mis tablas por su nombre tal cual como lo creé (predeterminadamente SIEMPRE en minúsculas, al igual que nombres de campos).

    Crecí en un ambiente de Linux así que la verdad me parece desconcertante que Windows maneje mayúsculas y minúsculas como iguales, si tienen códigos distintos en ASCII cómo las vas a asimilar como sinónimos!

    Saludos.

    • muy cierto, al final lo que nos falta como programadores es mejorar nuestras practicas a la hora de tirar lineas; tratar de seguir siempre un estándar para no caer en problemas como el del post.

      saluuoos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: