[MySQL] code: 'PROTOCOL_ENQUEUE_ AFTER_FATAL_ERROR'

uoayop·2021년 5월 5일
0

에러 한바가지

목록 보기
5/16
post-thumbnail

[상황]

  1. 도커로 mysql을 실행시키고, 백엔드를 npm start 명령어로 실행시켰다.
  2. MySQLWorkbench로 테이블을 불러오자 아래와 같은 에러가 발생했다.
  3. 에러가 발생하자 백엔드와 docker도 동작을 멈췄다.
    (; MySQL 연결이 끊어짐)
actionresponseduration
select * from MUSICS LIMIT 0, 1000Error Code: 2013. Lost connection to MySQL server during query0.106 sec

[에러 코드]

code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
fatal: false

[내가 시도했던 해결 방법들]

이 문제때문에 검색을 진짜 네시간은 한 것 같다.
docker를 재설치하기도 하고, 백엔드 코드에 문제가 있나 디버깅도 해보았다.

  1. Node.js 서버 운영시 발생하는 오류 대응
  2. {"code":"PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR","fatal":false}
  3. nodejs mysql Error: Connection lost The server closed the connection

서버 연결이 끊어지면 setTimeout을 통해 다시 연결하는 작업을 해줬지만 동일한 에러 발생,, ☠️

  1. node.js mysql PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR 에러
 mac과 centos에서 node.js를 통해 mysql 접속시 장시간 지난후
이런 에러가 발생을 하는데 mysql 쪽 세션 timeout 이 원인으로 추정됨.

출처: https://minimonk.net/8380 [구차니의 잡동사니 모음]

MySQL 접속을 끊었다가 다시 접속해보고, 세션 시간도 늘려줬지만 동일한 에러 발생,, ☠️


[해결 방법]

어처구니가 없지만 [백엔드 & DB] 실행 순서를 다르게 하니 동작했다.

  1. 도커로 mysql을 실행시키고, MySQLWorkbench로 연결 확인하기
  2. 잘 동작하는 것을 확인했다면 백엔드 실행하기 ㅋㅎ

    ( 왜 되냐고 )

어이가 없고.. 뭐 때문에 발생한 에러인지 모르겠다.,,

결론

  1. docker --> backend start --> MySQLWorkbench (❌ 안됨)
  2. docker --> MySQLWorkbench --> backend start (⭕️ 됨)
profile
slow and steady wins the race 🐢

0개의 댓글