Gigastur

Servicios informáticos

615 654 407
info@gigastur.com

  • Inicio
  • Servicios
    • Asistencia a domicilio
    • Reparación de ordenadores
    • Mantenimiento para empresas
    • Diseño web y hosting
  • Precios
    • Mantenimiento para empresas
    • Diseño web
    • Asistencia a domicilio
    • Reparaciones en tienda
    • Bonos de mantenimiento
    • Alojamiento web
  • Trabajos realizados
  • Contacto
  • Blog
    • Comandos Linux
    • Comandos Windows
    • MySQL
    • Laravel
    • Steam
    • Herramientas Sysadmin

Incompatibilidades MySQL tras actualizar Ubuntu

03/10/2016 por Igor García 1 comentario

Durante el fin de semana actualizamos un servidor Ubuntu 14.04 a 16.04. Este servidor contiene una base de datos MySQL, donde se conecta una aplicación de gestión instalada en el resto de equipos de la LAN.

Comprobamos que tras la actualización se puede acceder a la aplicación, pero no funcionan las búsquedas (no dan error, pero nunca devuelven resultado), por lo que empezamos a buscar la raiz del problema:

Comprobamos que la MySQL ha pasado de la versión 5.6 a la 5.7. Intentamos volver a la versión anterior, pero ya no se encuentra en los repositorios de Ubuntu. Aunque en internet hay algunos pasos a seguir, no nos funcionan, por lo que debemos intentar hacer funcionar nuestro programa con la última versión.

Activamos el log de MySQL para registrar todas las consultas de la aplicación en el servidor:

En el fichero /etc/mysql/mysql.conf.d/mysqld.cnf descomentamos las líneas:

#general_log_file = /var/log/mysql/mysql.log
#general_log = 1

Ahora ejecutamos en nuestra aplicación la búsqueda que da error y luego copiamos la consulta resultante del log de mysql, que es esta:

SELECT numero FROM expediente WHERE numero=1000 AND fechacierre= CAST("0000-00-00" AS DATE)

La copiamos en phpmyadmin y vemos que tampoco devuelve ningún valor, a menos que eliminemos la condición de fecha de cierre, o que indiquemos una fecha válida, por lo que el fallo parece estar en la búsqueda de fechas vacías.

Un comentario en el foro de ubuntu nos da una pista:

What error are you getting? I suspect that it is due to the ONLY_FULL_GROUP_BY flag which is "on" by default in MySQL 5.7. Set it to off and you may be fine.

La nueva versión de MySQL activa por defecto unos modos que pueden crear incompatibilidades con nuestra aplicación.

Consultamos la documentación, que nos indica que podemos comprobar los modos activos actualmente desde el cliente de MySQL con

SELECT @@GLOBAL.sql_mode;

que nos devuelve lo siguiente:

ONLY_FULL_GROUP_BY
STRICT_TRANS_TABLES
NO_ZERO_IN_DATE
NO_ZERO_DATE
ERROR_FOR_DIVISION_BY_ZERO
NO_AUTO_CREATE_USER
NO_ENGINE_SUBSTITUTION

También podemos consultar los SQL MODES desde phpmyadmin: en la pantalla principal, en los botones de arriba, pulsamos el que pone variables y buscamos sql mode. Podemos modificarlas desde ahí pulsando editar.

Parece que son estas opciones las que impiden las consultas sobre la base de datos usando fechas vacías, como estabamos haciendo.

Comprobamos en otra instalación similar con Ubuntu 14.04 que no hay ningún modo SQL activo, por lo que los eliminamos con este comando:

SET GLOBAL sql_mode = '';

Tras esto el programa vuelve a funcionar correctamente, aunque al reiniciar la MySQL se vuelven a activar estos SQL modes.

Para que este cambio quede guardado tras reiniciar el servidor, debemos añadir, en el fichero de configuración de MySQL (/etc/mysql/my.cnf o /etc/mysql/mariadb.conf.d/50-server.cnf según proceda) esta línea:
[mysqld]

sql_mode = ""

Más info: sitepoint

Categorías: Base de datos, Linux, Sistemas Etiquetas: mysql, Ubuntu

Comentarios

  1. Laura Preciado dice

    18/10/2016 en 01:44

    Hola, a pesar de ver realizado todo eso y de que no me aparece nada en @@GLOBAL.sql_mode; aun me sigue mandando error, como que no tomara el valor.. a pesar de que reinicie pero nada...

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías

Enlaces

  • Abode PDF Reader
  • Actualizar a Windows 10
  • Anti Ransomware
  • Aviso de cookies
  • Browser Diet
  • Buenas practicas Ransomware
  • BuiltWith
  • cdlibre
  • Chocolatey
  • CIDR Calculator
  • Consulta numero móvil
  • Cual es mi IP
  • Descarga de DLL
  • Descarga de OCX
  • Descarga de RPM
  • Descarga de Windows y Office
  • Descarga de Windows y Office
  • DistroTest
  • Dumo
  • explainshell
  • File-extensions
  • FileHippo
  • Flash Player
  • Geolocalización Multi IP
  • HDDScan
  • htaccesstools
  • Ip Location
  • Kaspersky
  • LinuxServer.io
  • Máquinas Virtuales OSBoxes
  • Microsoft Doc
  • ms-vnext: Windows y Office
  • Ninite
  • Nirsoft
  • Open Source Alternatives
  • Patch My PC
  • PC decrapifier
  • PCI Lookup
  • PCI-IDS
  • pcidatabase
  • PCIids
  • Port Listener
  • Portable Freeware
  • Router Passwords
  • Saber tipografía de una foto
  • Shodan
  • Ssega
  • Sumo
  • Sysinternals
  • SystemRescueCd
  • Test de velocidad
  • The eye
  • Virustotal
  • Windows ISO
  • Windows Mini
  • WizTree
  • You Get Signal

Contacto

  • 615 654 407
  • info@gigastur.com

Entradas recientes

  • Estructura de una cuenta de correo en un servidor Postfix
  • Crear directorios automáticamente con comandos Linux
  • Arreglar error MySQL: field doesn't have a default value
  • Ubuntu desktop: Mostrar información del sistema al iniciar sesión SSH
  • Añadir cuarta columna en homepage del tema WordPress Genesis Enterprise Pro

Control remoto

  • Control remoto Windows
  • Control remoto MAC
  • Control remoto Linux AMD64
  • Control remoto Linux i386
  • Versión completa
  • Servicio
  • Servicio (descarga alternativa)

Aviso legal | Política de privacidad | Política de cookies

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los ajustes.

Gigastur
Powered by  GDPR Cookie Compliance
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!