社会人から始めたプログラミング

プログラミング、エンジニアに関することでの備忘録、シェアしたい情報などを共有するためのブログです。

mysqlの5.7.5以上でsql_mode起因のONLY_FULL_GROUP_BYエラーを解消する。

仕様が変わったので、sql_modeを設定して、5.7.4より前と同じように動くようにする。

my.cnfファイルにsql_modeを設定

  • home brewで入れたmysqlのmy-xxx.cnfをコピーして、user/local/etcの下にファイルを配置する。
  • user/local/etcのファイル内に、下記ののように、ONLY_FULL_GROUP_BYが含まれない状態でsql_modeを設定する。
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をリスタート
  • homebrewで入れていたら mysql.server stop して mysql.server start (もしくはrestart)
  • 設定を加えたら、mysql を起動して、show variables;sql_mode=の中に、 ONLY_FULL_GROUP_BYの設定がないことを確認。      

参考にさせていただきました。

qiita.com

starzero.hatenablog.com

qiita.com

MySQLサーバの起動と停止 | OpenGroove