최근에 MariaDB에서 MySQL로 마이그레이션해야 할 일이 있었다. 마이그레이션한 후에 애플리케이션이 잘 작동하는 것 같았는데, 특정 기능을 수행해보니 다음과 같은 에러가 발생했다.
MySQLdb.OperationalError: (1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 's.written_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by")
MariaDB와 MySQL 간 group by를 처리하는 로직에 있어서 차이가 있어서 발생하는 이슈인 듯했다. 구글링을 해보니 mysqld.cnf의 끝에 한 줄만 추가해주면 된다고 해서 해봤더니 해당 문제가 해결되었다. 참고로 나의 경우에 mysqld.cnf의 경로는 /etc/mysql/mysql.conf.d/mysqld.cnf 이다.
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
코드 또는 쿼리를 수정하지 않고 해결되어서 다행이었다.
참고자료
'DB > SQL' 카테고리의 다른 글
[MySQL] 서버 타임존 변경하기 (0) | 2024.07.21 |
---|---|
[Oracle] 인덱스 조회 쿼리 (0) | 2024.07.01 |
[Oracle] 테이블 및 컬럼 코멘트 조회하기 (0) | 2024.03.11 |
[Oracle] 테이블 생성 쿼리 확인, show create table 안 됨 (0) | 2024.02.13 |
[Oracle] Oracle에서 LIMIT에 해당하는 SQL 문법은? (0) | 2024.01.05 |
[MySQL] FROM DUAL 이란? (0) | 2023.10.09 |
[MySQL] JSON 필드 Null 체크하는 방법 (0) | 2023.09.27 |
[MySQL] 같지 않은 것을 조회할 때 사용할 수 있는 !=와 <> 연산자의 차이 (0) | 2023.09.23 |