본문 바로가기

Others/데이터베이스

[MYSQL] sql_mode=only_full_group_by 에러 발생

* MySQLSyntaxErrorException 발생확인

com.mysql.jdbc.execptions.jdbc4.MYSQLSynctaxErrorException: Expression#1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'field' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

 

* 원인

MYSQL 5.7의 새로운 기능 중 SQL mode 강화 기능으로 인한 GROUP BY 문법오류발생

 

* 강화된 문법 안내

- ONLY_FULL_GROUP_BY : group by 하지 않은 열은 select 할 수 없음

- STRICT_TRANS_TABLES : 형식이 맞지 않는 값을 insert 할 수 없음 ex) 컬럼의 정해진 길이보다 큰 값을 저장할 때

 

* 해결방법

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

 

[mysqld]

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISON_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

sudo service mysql restart

* 문법적인 수정이 불가피 할 경우 해결할 수 있는 임시 방편

 

[출처] m.blog.naver.com/PostView.nhn?blogId=jjijilx2&logNo=221228864630&categoryNo=20&proxyReferer=

 

[MYSQL] sql_mode=only_full_group_by 에러발생

* MySQLSyntaxErrorException 발생확인com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx...

blog.naver.com