Lors de la migration d'un site Web client d'un WHM/cPanel vers un autre WHM/cPanel, j'ai reçu une erreur SQL "Incompatible avec sql_mode=only_full_group_by “. Vous trouverez ci-dessous le message d'erreur complet.
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
Solution : MySQL 5.7.5+ a changé GROUP BY le comportement était conforme à SQL99 (les anciennes versions ne l'étaient pas) et c'était la raison de l'erreur.
La solution consiste à modifier vos configurations MySQL pour supprimer ONLY_FULL_GROUP_BY option de sql_mode . Cela changera GROUP BY retour à son comportement antérieur à MySQL 5.7.5.
Si vous êtes sur un hébergement mutualisé, vous ne pourrez pas modifier le sql_mode au niveau de l'environnement.
Supprimer ONLY_FULL_GROUP_BY dans my.cnf fichier
Si vous avez accès au fichier de configuration MySQL my.cnf , ouvrez le fichier :
# vim /etc/mysql/my.cnf
et ajoutez la ligne ci-dessous à la fin du fichier :
[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" Redémarrez le service MySQL :
# systemctrl restart mysqlDésactiver ONLY_FULL_GROUP BY
Cela désactivera ONLY_FULL_GROUP_BY pour TOUS les utilisateurs du système.
Supprimer ONLY_FULL_GROUP_BY dans WHM/cPanel
Si votre domaine est sur un cPanel (hébergement partagé), vous devez contacter votre fournisseur d'hébergement pour le mettre à jour.
Si vous avez accès à WHM, accédez à PHPMyAdmin sous SQL Services de WHM comme indiqué ci-dessous :
Cliquez sur Variables dans le menu et recherchez SQL_MODE
Cliquez sur le bouton Modifier et modifiez supprimer ONLY_FULL_GROUP_BY . Une fois modifié, cliquez sur save .
C'est tout !