環境
$ mysql -V
mysql Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using EditLine wrapper
対応
mysql 5.6 -> 5.7にした際にsql_modeの初期設定が変更されていたのが原因でした。
localにはhomebrewでmysqlをインストールしていたので、my.cnfの変更と再起動で対応します。
mysqlのSQLモードを確認
SELECT @@sql_mode;
=> 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
なんかいろいろいますね・・・
(mysql5.7から7個のSQLモードが初期設定されているそうです)
my.cnfのSQLモードを変更
my.cnfの場所を確認します。
$ mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
SQLモードはとりあえず空っぽにしときます。
(今回のエラーの原因のONLY_FULL_GROUP_BY
を取り除くだけでもいいです)
/usr/local/etc/my.cnf
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
+ sql_mode = ""
mysqlサーバを再起動
$ mysql.server restart
Done.