Mientras migraba el sitio web de un cliente de un WHM/cPanel a otro WHM/cPanel, recibí un error de SQL "Incompatible con sql_mode=only_full_group_by “. A continuación se muestra el mensaje de error completo.
SELECT list is not in GROUP BY clause and contains nonaggregated column 'dbname.p.picfile' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
GROUP BY
comportamiento para ser compatible con SQL99 (las versiones anteriores no lo eran) y ese fue el motivo del error.
La solución consiste en editar las configuraciones de MySQL para eliminar ONLY_FULL_GROUP_BY
opción de sql_mode
. Esto cambiará GROUP BY
comportamiento de vuelta a su comportamiento anterior a MySQL 5.7.5.
Si está en un alojamiento compartido, no podrá cambiar el sql_mode
a nivel de entorno.
Eliminar ONLY_FULL_GROUP_BY
en my.cnf
archivo
Si tiene acceso al archivo de configuración de MySQL my.cnf
, abre el archivo:
# vim /etc/mysql/my.cnf
y agregue la siguiente línea al final del archivo:
[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"
Reinicie el servicio MySQL:
# systemctrl restart mysqlDeshabilitar ONLY_FULL_GROUP POR
Esto deshabilitará ONLY_FULL_GROUP_BY para TODOS los usuarios del sistema.
Eliminar ONLY_FULL_GROUP_BY
en WHM/cPanel
Si su dominio está en un cPanel (alojamiento compartido), entonces debe comunicarse con su proveedor de alojamiento para actualizarlo.
Si tiene acceso a WHM, acceda a PHPMyAdmin
en SQL Services
de WHM como se muestra a continuación:
Haga clic en Variables
desde el menú y busque SQL_MODE
Haga clic en el botón editar y cambie eliminar ONLY_FULL_GROUP_BY
. Una vez editado, haz clic en save
.
¡Eso es!