백엔드/DB
[sql] functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
작은소행성
2023. 1. 4. 23:47
잘못된 쿼리를 사용해서 생기는 오류이므로 서버 설정보다 쿼리로 해결할 수 있도록 하는게 좋다.
쿼리로 해결하기
쿼리 상의 GROUP BY 절을 따로 분리해 준다.
서버 설정으로 해결하기
MySQL 실행 시 only_full_group_by 옵션의 활성화/비활성화를 비활성화 한다.
1.
mysql 설정 상태 확인
> select @@sql_mode;
2.
mysql 설정이 되있음을 확인 (아래 출력 처럼 only_full_group_by이 나오면 설정이 필요)
> | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3.
my.cnf 설정파일의 해당 부분을 추가 (linux 기준 /etc/my.cnf)
[mysqld]에 아래 설정 추가
> sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
4.
mysql 재기동
> service mysqld restart
반응형