J'ai activé accidentellement le mode ONLY_FULL_GROUP_BY comme ceci:
SET sql_mode = 'ONLY_FULL_GROUP_BY';
Comment le désactiver?
column
) pour adapter votre requête. Voir le doc ici
J'ai activé accidentellement le mode ONLY_FULL_GROUP_BY comme ceci:
SET sql_mode = 'ONLY_FULL_GROUP_BY';
Comment le désactiver?
column
) pour adapter votre requête. Voir le doc ici
Réponses:
Solution 1: supprimer ONLY_FULL_GROUP_BY de la console mysql
mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
vous pouvez en savoir plus ici
Solution 2: supprimer ONLY_FULL_GROUP_BY de phpmyadmin
REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')
, MySQL supprime de toute façon les virgules indésirables de l'enregistrement. La réponse d'OP est correcte.
GLOBAL
n'a pas fonctionné pour moi, mais SESSION
a fonctionné. SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Pour conserver vos paramètres mysql actuels et les désactiver, ONLY_FULL_GROUP_BY
je vous suggère de visiter votre phpmyadmin ou tout autre client que vous utilisez et tapez:
SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','') copy_me
résultat de la copie suivante dans votre my.ini
fichier.
menthe :sudo nano /etc/mysql/my.cnf
Ubuntu 16 et plus :sudo nano /etc/mysql/my.cnf
Ubuntu 14-16 :/etc/mysql/mysql.conf.d/mysqld.cnf
copy_me
Le résultat peut contenir un long texte qui pourrait être coupé par défaut. Assurez-vous de copier le texte entier!ancienne réponse:
Si vous souhaitez désactiver définitivement l' erreur " Expression #N de la liste SELECT n'est pas dans la clause GROUP BY et contient la colonne non agrégée 'db.table.COL' qui ne dépend pas fonctionnellement des colonnes de la clause GROUP BY; cela est incompatible avec sql_mode = only_full_group_by "procédez comme suit:
sudo nano /etc/mysql/my.cnf
Ajoutez ceci à 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"
sudo service mysql restart
redémarrer MySQL
Cela désactivera ONLY_FULL_GROUP_BY
pour TOUS les utilisateurs
/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
peut ne pas être dans ce fichier, il peut être dans un répertoire include. Utilisez d'abord cette commande: grep -R "\[mysqld\]" *
pour voir ce qui s'y trouve - et d'ailleurs essayezgrep -R "\bsql_mode\b" *
Soyez prudent en utilisant
SET sql_mode = ''
Cela efface en fait tous les modes actuellement activés. Si vous ne voulez pas jouer avec d'autres paramètres, vous voudrez faire un
SELECT @@sql_mode
tout d'abord, pour obtenir une liste séparée par des virgules des modes activés, puis définissez-la sur cette liste sans l' ONLY_FULL_GROUP_BY
option.
then SET it to this list without the ONLY_FULL_GROUP_BY option.
:?
SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
sql_mode=<comma-separated-list>
puis arrêtez et démarrez votre serveur. Suivez les documents de votre système d'exploitation pour l'emplacement et la meilleure façon de modifier my.cnf.
Essayez ceci:
SET sql_mode = ''
Remarque de la communauté: Comme indiqué dans les réponses ci-dessous, cela efface en fait tous les modes SQL actuellement activés. Ce n'est pas nécessairement ce que vous voulez.
''
= 'full group by is disabled'
? MySQL fait des choses assez stupides mais celle-là est là-haut.
0 rows affected
et ma requête ne fonctionne toujours pas:Error Code: 1055. Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column ...
global
dans la commande .
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> exit;
sql_mode
retour à la valeur précédente. Que puis-je faire maintenant?
Ajout d'un seul mode à sql_mode sans supprimer les modes existants:
SET sql_mode=(SELECT CONCAT(@@sql_mode,',<mode_to_add>'));
Supprimer uniquement un mode spécifique de sql_mode sans en supprimer d'autres:
SET sql_mode=(SELECT REPLACE(@@sql_mode,'<mode_to_remove>',''));
Dans votre cas, si vous souhaitez supprimer uniquement le ONLY_FULL_GROUP_BY
mode, utilisez la commande ci-dessous:
SET sql_mode=(SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
Référence: http://johnemb.blogspot.com/2014/09/adding-or-removing-individual-sql-modes.html
Merci à @cwhisperer. J'ai eu le même problème avec Doctrine dans une application Symfony. Je viens d'ajouter l'option à mon config.yml:
doctrine:
dbal:
driver: pdo_mysql
options:
# PDO::MYSQL_ATTR_INIT_COMMAND
1002: "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"
CA marchait bien pour moi.
SET NAMES
utilisant cette méthode, dans la plupart des cas, il n'est pas nécessaire que symfony le définisse via doctrine.dbal.charset cofnig: symfony.com/doc/current/reference/configuration/doctrine.html , et le fait correctement via PDO dns, SET NAMES est une manière obsolète de le faire, qui ne devrait pas être utilisée pour la version PHP supérieure à 5.3
Sur:
Faire:
$ sudo nano /etc/mysql/conf.d/mysql.cnf
Copier et coller:
[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
Au bas du fichier
$ sudo service mysql restart
/etc/mysql/mysql.cnf
pointe vers 2 dossiers de configuration !includedir /etc/mysql/conf.d/
+ !includedir /etc/mysql/mysql.conf.d/
. Il en va de même /etc/mysql/my.cnf
. Par conséquent, je suppose que les fichiers de configuration ne sont pas remplacés lors de la mise à jour. Vous pouvez en savoir plus icihttp://dev.mysql.com/doc/mysql/en/server-system-variables.html
sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
peut - être qu'il est important de créer un nouveau fichier à la /etc/mysql/mysql.conf.d/mysqld_mode.cnf
place
J'ai remarqué que la solution @Eyo Okon Eyo fonctionne tant que le serveur MySQL n'est pas redémarré, puis les paramètres par défaut sont restaurés. Voici une solution permanente qui a fonctionné pour moi:
Pour supprimer un mode SQL particulier (dans ce cas, ONLY_FULL_GROUP_BY ), recherchez le mode SQL actuel:
SELECT @@GLOBAL.sql_mode;
copiez le résultat et supprimez-en ce dont vous n'avez pas besoin ( ONLY_FULL_GROUP_BY )
par exemple:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
à
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
créez et ouvrez ce fichier:
/etc/mysql/conf.d/disable_strict_mode.cnf
et y écrire et y coller votre nouveau mode SQL:
[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 MySQL:
sudo service mysql restart
Ou vous pouvez utiliser ANY_VALUE()
pour supprimer le rejet de valeur ONLY_FULL_GROUP_BY, vous pouvez en savoir plus ici
ANY_VALUE()
La documentation MySQL spécifie également les méthodes suivantes:
sql-mode="<modes>"
dans un fichier d'options tel que my.cnf (systèmes d'exploitation Unix) ou my.ini (Windows).--sql-mode="<modes>"
option.* Où se <modes>
trouve une liste de différents modes séparés par des virgules.
Pour effacer explicitement le mode SQL, définissez-le sur une chaîne vide à l'aide --sql-mode=""
de la ligne de commande ou sql-mode=""
dans un fichier d'options.
J'ai ajouté l' sql-mode=""
option à /etc/my.cnf
et cela a fonctionné.
Cette solution SO explique comment trouver le fichier my.cnf utilisé par MySQL.
N'oubliez pas de redémarrer MySQL après avoir apporté des modifications.
SELECT @@GLOBAL.sql_mode;
Si vous utilisez WAMP. Cliquez avec le bouton gauche de la souris sur l'icône WAMP, puis passez à MySQL -> Paramètres MySQL -> sql-mode, puis sélectionnez sql-mode-> user mode
Sur mon SQL (version 5.7.11 fonctionnant sous Mac OS X), cela fonctionne pour moi sur le client shell mysql:
SET
@@GLOBAL.sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Selon la documentation MySQL 5.6, sql_mode est par défaut est
chaîne vide dans MySQL 5.6.5 et retour NO_ENGINE_SUBSTITUTION, STRICT_TRANS_TABLES dans 5.6.6 +
sql_mode := ''
être possibles. Pourquoi êtes-vous en désaccord?
Sur MySQL 5.7 et Ubuntu 16.04, éditez le fichier mysql.cnf.
$ sudo nano /etc/mysql/conf.d/mysql.cnf
Incluez le sql_mode comme suit et enregistrez le fichier.
[mysql]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Notez que, dans mon cas, j'ai supprimé le mode STRICT_TRANS_TABLES et le ONLY_FULL_GROUP_BY.
Ce faisant, il enregistrera la configuration du mode de façon permanente. Différemment si vous venez de mettre à jour le @@ sql_mode via MySQL, car il se réinitialisera au redémarrage de la machine / du service.
Après cela, pour que la configuration modifiée entre en action, redémarrez le service mysql:
$ sudo service mysql restart
Essayez d'accéder au mysql:
$ mysql -u user_name -p
Si vous pouvez vous connecter et accéder à la console MySQL, c'est ok. Génial!
MAIS , si comme moi, vous faites face à l'erreur "variable inconnue sql_mode" , qui indique que sql_mode est une option pour mysqld , vous devrez revenir en arrière, éditer à nouveau le fichier mysql.cnf et changer le [mysql]
en [mysqld]
. Redémarrez le service MySQL et faites un dernier test en essayant de vous connecter sur la console MySQL. C'est ici!
Voici ce que j'ai effectué pour corriger sur le plan de travail Mysql:
Avant d'obtenir la valeur actuelle avec la commande ci-dessous
SELECT @@sql_mode
plus tard, j'ai supprimé la clé ONLY_FULL_GROUP_BY de la liste et j'ai collé la commande ci-dessous
SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
sql_mode
MySQL 5.7.9 ou version ultérieure
Pour ajouter ou supprimer un mode sql_mode
, vous pouvez utiliser list_add
etlist_drop
fonctions .
Pour supprimer un mode de l'actuel SESSION.sql_mode
, vous pouvez utiliser l'une des options suivantes:
SET SESSION sql_mode = sys.list_drop(@@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY');
SET sql_mode = sys.list_drop(@@sql_mode, 'ONLY_FULL_GROUP_BY');
SET @@sql_mode = sys.list_drop(@@sql_mode, 'ONLY_FULL_GROUP_BY');
Pour supprimer un mode du GLOBAL.sql_mode
qui persiste pour le runtime actuel opération d' cours, jusqu'au redémarrage du service .
SET GLOBAL sql_mode = sys.list_drop(@@GLOBAL.sql_mode, 'ONLY_FULL_GROUP_BY');
MySQL 5.7.8 ou antérieur
Depuis le sql_mode
valeur est une chaîne de modes CSV, vous devez vous assurer que la chaîne ne contient pas de virgules résiduelles, ce qui peut être accompli en utilisantTRIM(BOTH ',' FROM ...)
.
Pour supprimer un mode de la sql_mode
variable, vous souhaitez utiliserREPLACE()
avec TRIM()
pour vous assurer que toutes les virgules résiduelles sont supprimées.
SET SESSION sql_mode = TRIM(BOTH ',' FROM REPLACE(@@SESSION.sql_mode, 'ONLY_FULL_GROUP_BY', ''));
SET GLOBAL sql_mode = TRIM(BOTH ',' FROM REPLACE(@@GLOBAL.sql_mode, 'ONLY_FULL_GROUP_BY', ''));
Pour ajouter un mode à la sql_mode
variable, vous voudriez utiliser CONCAT_WS(',', ...)
, pour vous assurer qu'une virgule est ajoutée aux modes actuels etTRIM()
pour s'assurer que toutes les virgules résiduelles sont supprimées.
SET SESSION sql_mode = TRIM(BOTH ',' FROM CONCAT_WS(',', 'ONLY_FULL_GROUP_BY', @@SESSION.sql_mode));
SET GLOBAL sql_mode = TRIM(BOTH ',' FROM CONCAT_WS(',', 'ONLY_FULL_GROUP_BY', @@GLOBAL.sql_mode));
REMARQUE: la modification de la
GLOBAL
variable ne se propage pas à laSESSION
variable tant qu'une nouvelle connexion n'est pas établie.La
GLOBAL
variable persistera jusqu'au redémarrage du service en cours d'exécution.La
SESSION
variable persistera pour la connexion actuelle, jusqu'à ce que la connexion soit fermée et qu'une nouvelle connexion soit établie.
GLOBAL.sql_mode
Puisque a SET sql_mode = 'ONLY_FULL_GROUP_BY';
été exécuté sans le GLOBAL
modificateur, le changement n'a affecté que la SESSION
valeur d'état actuelle , qui se rapporte également à @@sql_mode
. Pour le supprimer et revenir à la valeur par défaut globale au redémarrage du serveur , vous souhaitez utiliser la valeur de @@GLOBAL.sql_mode
. [sic]
La
SESSION
valeur actuelle n'est valable que pour la connexion actuelle. La reconnexion au serveur ramènera laGLOBAL
valeur à la valeur.
Pour rétablir la valeur d'état de session actuelle à la valeur globale actuelle, vous pouvez utiliser l'une des options suivantes:
SET SESSION sql_mode = @@GLOBAL.sql_mode;
SET @@sql_mode = @@GLOBAL.sql_mode;
SET sql_mode = @@GLOBAL.sql_mode;
Changer la SESSION.sql_mode
valeur enONLY_FULL_GROUP_BY
SET sql_mode = 'ONLY_FULL_GROUP_BY';
SELECT @@sql_mode, @@GLOBAL.sql_mode;
+--------------------+----------------------------------------------+
| @@sql_mode | @@GLOBAL.sql_mode |
+--------------------+----------------------------------------------+
| ONLY_FULL_GROUP_BY | NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION |
+--------------------+----------------------------------------------+
Rétablir la SESSION.sql_mode
valeur à la GLOBAL.sql_mode
valeur
SET sql_mode = @@GLOBAL.sql_mode;
SELECT @@sql_mode, @@GLOBAL.sql_mode;
+----------------------------------------------+----------------------------------------------+
| @@sql_mode | @@GLOBAL.sql_mode |
+----------------------------------------------+----------------------------------------------+
| NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION | NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------+----------------------------------------------+
sql_mode
Pour définir le mode SQL au démarrage du serveur, utilisez l'
--sql-mode="modes"
option sur la ligne de commande ousql-mode="modes"
dans un fichier d'options tel que my.cnf (systèmes d'exploitation Unix) ou my.ini (Windows). [sic]
Veuillez consulter votre version de MySQL pour déterminer les modes pris en charge et par défaut .
[mysqld]
sql-mode="NO_ENGINE_SUBSTITUTION" #default <= 5.7.4
sql_mode
Valeurs par défautÉtant donné que les valeurs par version de la documentation MySQL ont été supprimées, je les ai ajoutées ici pour référence.
MySQL> = 8.0.11 8.0.5 - 8.0.10 ignoré
ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
MySQL> = 5.7.8, <= 8.0.4
ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION
MySQL 5.7.7
ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION
MySQL> = 5.7.5, <= 5.7.6
ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ENGINE_SUBSTITUTION
MySQL> = 5.6.6, <= 5.7.4
NO_ENGINE_SUBSTITUTION
MySQL <= 5.6.5
''
Pour Mac OS Mojave (10.14) Terminal ouvert
$ sudo mkdir /usr/local/mysql-5.7.24-macos10.14-x86_64/etc
$ cd /usr/local/mysql-5.7.24-macos10.14-x86_64/etc
$ sudo nano my.cnf
Collez ce qui suit:
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
Raccourcis pour enregistrer et quitter nano: Ctrl+x
et y
etEnter
Remarque: vous devrez peut-être mettre à jourmysql-5.7.24-macos10.14-x86_64
ces commandes, vérifiez simplement le nom de dossier correct que vous avez obtenu dans/usr/local/
J'espère que cela aidera quelqu'un!
Si vous utilisez MySQL 8.0.11, vous devez supprimer le 'NO_AUTO_CREATE_USER' du mode sql.
Ajouter la ligne suivante dans le fichier /etc/mysql/my.cnf
et l'en-tête [mysqld]
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
J'utilise doctrine et j'ai ajouté les options driverOptions dans mon doctrine.local.php:
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => 'myusr',
'password' => 'mypwd',
'dbname' => 'mydb',
'driverOptions' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"
),
),
),
),
));
Dans phpmyadmin, l'utilisateur a besoin de SUPER activé dans les privilèges.
À qui exécute un VPS / serveur avec cPanel / WHM , vous pouvez effectuer les opérations suivantes pour désactiver définitivement ONLY_FULL_GROUP_BY
Vous avez besoin d'un accès root (soit sur un VPS soit sur un serveur dédié)
Entrez WHM en tant que root et exécutez phpMyAdmin
Cliquez sur Variables, recherchez sql_mode
, cliquez sur «Modifier» et copiez la ligne entière à l' intérieur de cette zone de texte
par exemple, copiez ceci:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Connectez-vous à votre serveur via SFTP - SSH (root) et téléchargez le fichier /etc/my.cnf
Ouvrez avec un my.cnf
fichier éditeur de texte sur votre PC local et collez-y (sous la [mysqld]
section) toute la ligne que vous avez copiée à l'étape (2) mais supprimezONLY_FULL_GROUP_BY,
par exemple collez ceci:
# disabling ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Enregistrez le my.cnf
fichier et téléchargez-le dans/etc/
Entrez WHM et allez dans "WHM> Redémarrer les services> SQL Server (MySQL)" et redémarrez le service
Im travaillant avec mysql et enregistré avec l'utilisateur root, la solution qui fonctionne pour moi est la suivante:
mysql> SET SESSION sql_mode = (SELECT REPLACE (@@ sql_mode, 'ONLY_FULL_GROUP_BY', ''));
Il s'agit d'une solution permanente pour MySql 5.7+ sur Ubuntu 14+:
$ sudo bash -c "echo -e \"\nsql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\" >> /etc/mysql/mysql.conf.d/mysqld.cnf"
$ sudo service mysql restart
# Check if login attempt throws any errors
$ mysql -u[user] -p # replace [user] with your own user name
Si vous êtes en mesure de vous connecter sans erreur - vous devriez être prêt maintenant.
Vous pouvez le désactiver en utilisant le fichier de configuration my.cnf
:
$ mysql --verbose --help | grep my.cnf
Donc, dans macOS 10.12, c'est à usr/local/etc/my.cnf
. Vous pouvez éditer sql_mode
ici:
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Voici ma solution modifiant la configuration de Mysql via le tableau de bord phpmyadmin:
Pour corriger "ceci est incompatible avec sql_mode = only_full_group_by": Ouvrez phpmyadmin et allez à la page d'accueil et sélectionnez le sous-menu "Variables". Faites défiler vers le bas pour trouver le mode sql. Modifiez le mode SQL et supprimez «ONLY_FULL_GROUP_BY». Enregistrez-le.
SET sql_mode = ''
?