Run:
sudo mysql -u root -p
mysql> SELECT @@global.sql_mode;
(Then optionally copy the output to your notes somewhere in case you want to revert to those original settings later.)
And change the SQL Mode for your MySQL Server Instance:
mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
(If you ever want to roll back, you could run something like mysql> SET GLOBAL sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION";
using the value you saved.)
A more permanent way (which will survive restarts of MySQL) would be using the MySQL configs. Go to /etc/mysql/my.cnf
(or you may need to run sudo vim /etc/mysql/mysql.conf.d/mysql.cnf
):
-
Add a section for
[mysqld]
and right below it add the statement
sql_mode = ""
or something likesql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
. -
Restart the MySQL service:
sudo systemctl restart mysql
(or sudo service mysql restart
)
See also https://dba.stackexchange.com/a/113153/18098