MySQL 5.7からはデフォルトの設定が色々変わっているので、5.6で動いていたアプリケーションが動かないケースがある。 主な理由はデフォルトのsql_modeの違い 5.7からはデフォルトでONLY_FULL_GROUP_BYやNO_ZERO_IN_DATEとかが設定されている。 ONLY_FULL_GROUP_BYが設定されていると、postgreSQLみたいにorder by句とgroup by句で同じカラムが指定されていないとエラーになる。 NO_ZERO_IN_DATEが設定されていると、careate_date = '0000-00-00 00:00:00'みたいなのでエラーになる。 5.7系でもバージョンによって細かくデフォルトのsql_modeが違うので注意が必要。 詳しくは公式のドキュメントを参照 <= 5.7.4 NO_ENGINE_SUBSTITUTION >= 5