El modo estricto es responsable de controlar cómo se manejan los valores perdidos al crear o actualizar nuevos registros en una base de datos MySQL.

El modo estricto está habilitado de forma predeterminada en MySQL, y este comportamiento genera advertencias molestas cuando un usuario intenta guardar registros que tienen valores vacíos en algunos campos. A veces, los registros no se guardan / actualizan en absoluto y esto puede afectar el funcionamiento normal de un sitio web o una aplicación web.

La desactivación del modo MySQL estricto permite que las consultas se ejecuten con valores faltantes o no válidos, y en la mayoría de los casos es el comportamiento preferido de la mayoría de administradores de bases de datos. A veces, deshabilitar el modo MySQL estricto puede provocar un comportamiento inesperado, como:

Sin embargo, si está ejecutando varias aplicaciones de software, es necesario deshabilitar el modo estricto de MySQL. De lo contrario, cualquier comando de pegado dará como resultado un error como: “Campo ‘‘no tiene un valor predeterminado “

En esta guía cubrimos los pasos para deshabilitar el MySQL predeterminado ‘STRICT_TRANS_TABLES’Comportamiento.

requisitos

  • Un servidor VPS Ubuntu 18.04
  • Servidor de comunidad MySQL
  • Un usuario no root con privilegios sudo

Nota especial: consulte la página Best Linux Hosting Services o Best VPS Hosting de Hosting Más Barato para encontrar los mejores proveedores de alojamiento web en estas categorías.

Paso 1: verifique si el modo estricto está habilitado

Primero debemos determinar si el modo estricto está habilitado en el servidor MySQL. Para verificar esto, ingrese el siguiente comando en un servidor de terminal:

$ sudo mysql -u root -p

Ingrese la contraseña raíz de su base de datos MySQL y presione Ingresar.

Luego, debe ejecutar la siguiente consulta en el indicador de MySQl:

$ SHOW VARIABLES LIKE 'sql_mode';

Aparecerá una tabla en la pantalla con algunos valores sql_mode separados por comas como se muestra a continuación. Cuando encuentras un valor como “STRICT_TRANS_TABLES”, entonces se activa el modo estricto de MySQL.

Paso 2: crea un nuevo archivo de configuración con un editor nano

Utilice un editor nano para crear un nuevo archivo de configuración en el /etc/mysql/conf.d/ Directorio. El nuevo archivo de configuración sobrescribe el archivo de configuración predeterminado de MySQL.

Utilice el siguiente comando:

$ sudo nano /etc/mysql/conf.d/disable_strict_mode.cnf

Luego ingrese el siguiente texto en el editor de texto:

[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

prensa CTRL + X y para guardar los cambios.

Paso 3: reinicia MySQL

Siempre que realice cambios en un directorio de configuración de MySQL, debe reiniciar el servicio MySQL con el siguiente comando para que los cambios surtan efecto:

$ sudo service mysql restart

Paso 4: confirma el cambio

Inicie sesión en su servidor MySQL nuevamente con el siguiente comando:

$ sudo mysql -u root -p

Ingrese su contraseña de root y presione Ingresar.

Ejecute la siguiente consulta nuevamente en el indicador de MySQl:

$ SHOW VARIABLES LIKE 'sql_mode';

Como puede ver en la captura de pantalla a continuación, el valor es ‘STRICT_TRANS_TABLES’ en la lista de valores sql_mode y esto significa que se ha desactivado con éxito.

Conclusión

Este es el procedimiento básico para deshabilitar el modo MySQL estricto en su servidor Ubuntu 18.04. Recuerde, es recomendable apagar el modo solo cuando tenga una aplicación que requiera el cambio. Esto se aplica a las aplicaciones que almacenan valores en una base de datos para columnas que toman valores vacíos sin valores predeterminados definidos.

Un caso común es uno Dirección 2 ‘ Campo que está presente en la mayoría de los formularios de registro, pero que puede no ser obligatorio. Esperamos que esta guía le ayude a solucionar sus errores de MySQL.

Consulte los 3 mejores servicios de alojamiento de servidores dedicados: