반응형
- Mysql 5.7 이상 버전에서 발생하는 Group by 에러
- 5.7 이상 버전으로 올라가면서 sql_mode 항목이 생겼으며 5.7 아래 버전으로 사용중이라면 크게 상관없다.
- 처리방법엔 설정파일 수정 및 해당 쿼리문 수정
- 해당 옵션을 사용 시 해당 쿼리문에는 GROUP BY 절에 에러가 발생하는 Column을 추가
처리방법 (설정)
1. Mysql sql_mode 설정상태 확인
select @@sql_mode;
SELECT 결과물
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
2. 해당 서버 내 mysql 설정파일 [ my.cnf ] 수정 및 추가
- my.cnf Path : /etc/my.cnf , /etc/mysql/mysqld.cnf , /etc/mysql/mysql.conf.d/mysqld.conf
- ONLY_FULL_GROUP_BY 설정 제거
[mysqld] 항목 아래 추가 및 수정
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
2-1
- SQL 문으로 수정
첫번째, SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
두번째, SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
세번째, SET @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
3. Mysql 재시작
service mysql restart
반응형
'MYSQL' 카테고리의 다른 글
Mysql 테이블 덤프 ( mysqldump) (0) | 2023.05.10 |
---|---|
Mysql 함수 생성 오류 해결방법 ERROR 1418: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) (0) | 2023.04.26 |
[MySql] SHOW PROCESSLIST (0) | 2022.10.11 |
대표적인 SQL 종류 (0) | 2022.07.14 |
트랜잭션 / 트랜잭션 격리수준 (0) | 2022.06.03 |