MariaDB Cannot enqueue Query after fatal error.(진행 중)
2022. 3. 17. 18:57ㆍBACK END/NODE.JS
Error: Cannot enqueue Query after fatal error.
...
code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
fatal: false
번역 -> 치명적 오류를 찾아내보자 -> 실패
반복적 오류로 에러메시지가 fatal로 뜰 수 있음 -> 반복적 오류를 찾아내보자 -> 실패
활동이 없을 때 커넥션이 만료되어서 그럴 수 있음 -> 도전!
MariaDB 설정변수 중 시간 만료 관련된 것 뽑아보자!
MariaDB [(none)]> show variables like '%timeout';
주요 변수 설명 (km0830님 블로그 참조)
connect_timeout : 서버 접속시에 접속실패 메세지를 보내기까지 대기하는 시간
delayed_insert_timeout : insert시 delay될 경우 대기하는 시간
innodb_lock_wait_timeout : innodb에 transaction 처리중 lock이 걸렸을 시 롤백 될때까지 대기하는 시간. innodb는 자동으로 데드락을 검색해서 롤백시킨다
innodb_rollback_on_timeout : innodb의 마지막 구문을 롤백시킬지 결정하는 파라미터. timeout은 진행중인 transaction을 중단하고 전체 transaction을 롤백하는 과정에서 발생한다.
interactive_timeout : 활동중인 커넥션이 닫히기 전까지 서버가 대기하는 시간
net_read_timeout : 서버가 클라이언트로부터 데이터를 읽어들이는 것을 중단하기까지 대기하는 시간
net_write_timeout : 서버가 클라이언트에 데이터를 쓰는 것을 중단하기까지 대기하는 시간
slave_net_timeout : 마스터/슬레이브로 서버가 클라이언트로부터 데이터를 읽어들이는 것을 중단하기까지 대기하는 시간
table_lock_wait_timeout : 테이블 락을 중단하기까지 대기하는 시간
wait_timeout : 활동하지 않는 커넥션을 끊을때까지 서버가 대기하는 시간
변경방법
MariaDB [(none)]> set global wait_timeout = 259200
MariaDB [(none)]> set session wait_timeout = 259200
72시간에 해당하는 값을 넣어주었으나 위 방법은 컨테이너가 재시작 될 경우 초기화 될 수 있음
설정파일 직접 수정하기
my.cnf
[mysqld]
wait_timeout = 259200
참조
'BACK END > NODE.JS' 카테고리의 다른 글
node-cron을 활용한 스케쥴링 (0) | 2022.03.17 |
---|---|
replace함수로 string타입 데이터 가공 (0) | 2022.03.17 |
cross-env (0) | 2022.03.17 |
Bcrypt 암호화 (0) | 2022.03.17 |
REST 미지원 메서드 처리 (0) | 2022.03.17 |