2024-07-20 14:04:14

최근에 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

 

코드 또는 쿼리를 수정하지 않고 해결되어서 다행이었다.

 

참고자료

[1] https://velog.io/@posasac/Etc.sqlmodeonlyfullgroupby-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0MacmySQL