mysql에서 db연결이 실패하고 이런 로그를 보신 적 있으실 겁니다.
(2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))")
이 로그가 뜨는 경우는
1.MySQL과 연결에 오류가 있는 경우
2. 패킷 전송에 문제가 있는 경우
3. 이전 연결 세션에 영향을 받은 경우
이렇게 세 가지 경우가 있는데 저의 경우는 2번째 문제였습니다.
저는 용량이 큰 쿼리를 mysql에 보내는 상황이었고,
전송 패킷의 용량이 너무 큰 바람에 생긴 오류였습니다.
해결책은 max_allowed_packet의 크기를 바꿔주는 것이었고,
직접 my.cnf파일을 찾아가 [mysqld] 항목에서 바꿔주면 됩니다. 최대 변경 가능 크기는 1GB이고, 너무 크게 설정할 시 메모리 사용에 무리가 갈 수 있으니 주의하시길 바랍니다.
표현식은 MB기준으로 32MB로 설정하고 싶을 땐 max_allowed_packet = 32*1024*1024의 형식으로 작성해 주면 됩니다.
(물론 곱한 값을 그대로 적어주셔도 됩니다.) 설정 완료하셨으면 mysql을 재시작해주셔야 적용됩니다!!(필수)
위 방법은 파일에서 직접 수정하는 방법이고,
바로 쿼리로 설정하는 방법은
set global max_allowed_packet=32*1024*1024; 로 설정해주고 창을 다시 닫았다가 켜주면 됩니다.
제대로 적용됐는지 확인 여부를 위해
show variables where Variable_name = 'max_allowed_packet'; 쿼리를 날려 확인해 주시면 되겠습니다.
모두 오류 해결하시길 바랍니다.
감사합니다.
'Debug' 카테고리의 다른 글
[Airflow] Unable to locate package apache-airflow-providers-mysql 오류 해결 (0) | 2023.01.11 |
---|---|
[Spring boot] JPA - No property xxx found for type xxx! (0) | 2022.12.21 |
[Airflow] Airflow 서버 재시작 안될 때 (2) | 2022.12.20 |
[Vue2/vue-router] cannot read properties of undefined (reading 'install') 오류 해결 (0) | 2022.12.15 |
댓글