Ten en cuenta que en la informática cualquier problema suele tener más de una resoluciones, pero compartiremos la mejor y más eficiente.
Solución:
Por cierto, si configura globales en MySQL:
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION';
Esto no lo configurará PERMANENTEMENTEy se revertirá después de cada reinicio.
Por lo tanto, debe configurar esto en su archivo de configuración (por ejemplo, /etc/mysql/my.cnf
en el [mysqld] sección), para que los cambios permanezcan en vigor después de reiniciar MySQL:
Archivo de configuración: /etc/mysql/my.cnf
[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ACTUALIZACIÓN: Las versiones más nuevas de Mysql (por ejemplo, 5.7.8 o superior) pueden requerir una sintaxis ligeramente diferente:
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
Asegúrese de que haya un guión entre sql-mode
no es un guión bajo, y los modos están entre comillas dobles.
Consulte siempre los documentos de MySQL para su version para ver las opciones del modo sql.
Lo resolví.
el modo correcto es:
set global sql_mode="NO_BACKSLASH_ESCAPES,STRICT_TRANS_TABLE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Configuración del modo sql de forma permanente mediante el archivo de configuración mysql.
En mi caso tengo que cambiar de archivo /etc/mysql/mysql.conf.d/mysqld.cnf
como mysql.conf.d
está incluido en /etc/mysql/my.cnf
. cambio esto debajo [mysqld]
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
acaba de eliminar ONLY_FULL_GROUP_BY
modo sql porque estaba causando problemas.
estoy usando ubuntu 16.04
, php 7
y mysql –version dame esto mysql Ver 14.14 Distrib 5.7.13, for Linux (x86_64) using EditLine wrapper
Después de este cambio, ejecute los siguientes comandos
sudo service mysql stop
sudo service mysql start
Ahora verifique los modos sql por esta consulta SELECT @@sql_mode
y debería obtener los modos que acaba de configurar.