[MySQL] 1055 Error; this is incompatible with sql_mode=only_full_group_by")

깨미·2021년 11월 17일
0

💻 배워가기 💻

목록 보기
21/30

에러

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by")

AWS ec2 서버에서 Flask 구동하기 글에서 해결했던 에러가 다시 생겼다.
일주일정도 서버를 구동했는데 db 설정이 초기화가 된건지 group by query시에 문제가 생겨 서버 동작이 안한다 ^^


mysql 에서 query로 설정하는 건 영구적으로 설정되는 것이 아니라고 한다 !!

해결방법

그래서 아예 etc/my.cnf 안에서 설정을 해보았다.
etc는 linux의 home 디렉터리에서 한 번 더 나가면 있다.

mysql 설정 파일은 버전이나 설치되는 방법에 따라 좀 다른거 같은데 나는 sudo vi etc/my.cnf 로 수정할 수 있다.

다른 글에서는 sudo vim /etc/mysql/conf.d/mysql.cnf 로 수정한다니 참고하자. vim이 안 먹힐 수도 있으니 vi로도 열어보자 !

그런 다음
[mysqld] 밑에 이렇게 붙여넣는다.

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

그런 다음 :wq 로 저장한다. 이 명령어가 안먹히면 :wq! 로 강제로 저장하면 된다.

그리고 mysql service를 재시작한다.
sudo systemctl restart mysqld
sudo systemctl status mysqld 로 mysql이 실행되었는 지 확인한다.

총 과정

cd etc
sudo vi my.cnf

#Write 
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

#Save
:wq

#Restart mysql
sudo systemctl restart mysqld
sudo systemctl status mysqld
profile
vis ta vie

0개의 댓글