MariaDB sql_mode에서 ONLY_FULL_GROUP_BY 제거
원본 MySQL 8과 동작을 맞추려고 이 모드를 켰던 것이 역효과였다. MySQL 8은 GROUP BY 컬럼에 대한 함수 종속성을 판정해 집계에 없는 컬럼도 통과시키지만 MariaDB는 그 판정을 하지 않는다. 같은 sql_mode를 그대로 옮기면 로컬에서 잘 돌던 쿼리가 서버에서만 터진다. 증상: 관리자 2차인증 로그인 직후 /mnt/main.do 가 404. 실제로는 대시보드 쿼리가 'Z.STATUS1' isn't in GROUP BY 로 실패하고 예외 처리가 404로 이어진 것. ONLY_FULL_GROUP_BY 제외는 MariaDB의 기본값이기도 하다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
6c9d88aa2e
commit
28a0329114
@ -21,8 +21,12 @@ table_open_cache = 400
|
|||||||
tmp_table_size = 32M
|
tmp_table_size = 32M
|
||||||
max_heap_table_size = 32M
|
max_heap_table_size = 32M
|
||||||
|
|
||||||
# 원본 MySQL 8은 ONLY_FULL_GROUP_BY가 켜진 상태로 운영된다. 동작을 맞춰 둔다.
|
# 원본 MySQL 8 은 ONLY_FULL_GROUP_BY 가 켜진 상태로 운영되지만, 여기서는 빼야 한다.
|
||||||
sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
|
# MySQL 8 은 GROUP BY 컬럼에 대한 '함수 종속성'을 판정해 집계에 없는 컬럼도 통과시키지만
|
||||||
|
# MariaDB 는 그 판정을 하지 않는다. 같은 sql_mode 를 그대로 옮기면 로컬에서 잘 돌던
|
||||||
|
# 쿼리가 여기서만 터진다 (2026-08-26 관리자 메인 대시보드: 'Z.STATUS1' isn't in GROUP BY).
|
||||||
|
# ONLY_FULL_GROUP_BY 제외는 MariaDB 의 기본값이기도 하다.
|
||||||
|
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
|
||||||
|
|
||||||
default_time_zone = '+09:00'
|
default_time_zone = '+09:00'
|
||||||
slow_query_log = 1
|
slow_query_log = 1
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user