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 !