He actualizado nuestro servidor a Ubuntu 16, que incluye Mysql 5.7 y, de forma predeterminada, el modo estricto está habilitado (aunque no hay ninguna entrada en ninguno de los archivos de configuración).
Tenemos problemas para importar bases de datos que estaban en producción en mysql 5.6 y anteriores, y es debido al modo estricto. Por defecto, aquí está lo que está habilitado:
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
¿Cómo puedo configurar mysql 5.7 para que funcione exactamente como lo hizo en 5.6 o para que las bases de datos de 5.6 sean compatibles con 5.7?
Respuestas:
Para deshabilitar el modo SQL estricto, ingrese SSH en su servidor como
root
y cree este archivo:Abra el archivo e ingrese estas dos líneas:
Reinicie MySQL con este comando:
Este cambio deshabilita dos configuraciones de modo SQL
STRICT_TRANS_TABLES
yONLY_FULL_GROUP_BY
, que se agregaron en MySQL 5.7 y causan problemas para algunas aplicaciones más antiguas.Confirmar que el modo SQL estricto está deshabilitado
Puede confirmar que el modo SQL estricto está deshabilitado ejecutando este comando como
root
:Si el modo estricto está desactivado, no verá ningún resultado de ese comando.
Si deshabilitar el modo estricto le causa algún problema, puede habilitarlo nuevamente eliminando ese archivo y reiniciando MySQL nuevamente.
Fuente: Cómo deshabilitar el modo SQL estricto en MySQL 5.7
fuente
mysql: [ERROR] Found option without preceding group in config file /etc/mysql/conf.d/disable_strict_mode.cnf at line 1!
:?Establecer
sql_mode
en/etc/mysql/mysql.conf.d/mysqld.cnf
sinSTRICT_TRANS_TABLES
.Añadir debajo
[mysqld]
:fuente