DB/SQL
[MySQL] MariaDB에서 MySQL로 변경한 후 sql_mode=only_full_group_by 에러가 발생한 경우 조치 방법
bskyvision.com
2024. 7. 20. 14:04
최근에 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
코드 또는 쿼리를 수정하지 않고 해결되어서 다행이었다.