Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 조건문
- TypeScript
- JWT
- java
- 프로그래머스
- Load Balancer
- ubuntu
- wil
- 항해99
- Nodejs
- Joi
- JavaScript
- Node.js
- it
- 생활코딩
- nomadcoder
- AWS
- MYSQL
- elb
- mongoose
- mongodb
- 메소드
- npm
- 노마드코더
- 타입스크립트
- reduce
- nginx
- https
- CORS
- 자바스크립트
Archives
- Today
- Total
V-logue
[MySQL / MariaDB] Can't add new command when connection is in closed state 본문
Error
[MySQL / MariaDB] Can't add new command when connection is in closed state
보그 2023. 7. 12. 18:24회사생활을 하던 중, FE에서 원인을 알 수 없는 DB 에러가 발생했다고 해서 찾아봤다.
우리는 하나의 Pool에 Connection을 생성해서 사용하는 방식을 채용하고 있는데,
저번에는 finally에서 connection.release()가 먹히지 않아 커넥션이 터지더니 이번에는
원인을 알 수 없는 에러가 떠버렸다.
Can't add new command when connection is in closed state
인터넷을 찾아보니, pool을 다시 생성해서 connection을 만들라는 말이 있어서,
그렇게 해보니 에러가 뜨지 않았다.
검색결과 정확히 하나의 원인을 찾기 어려운 문제였기 때문에 일단 해결한 것으로 만족.
try ~ catch로 createPool을 감싸고, connection을 만드는 부분에
!pool을 넣고 해결했다.
try {
if(!pool){
let pool2 = mysql.createPool({
host: process.env.HOST,
user: process.env.USER,
password: process.env.PASSWORD,
database: process.env.NAME,
port: process.env.PORT,
connectTimeout: 10000
});
pool = pool2;
return pool.getConnection();
}
conn = await pool.getConnection();
} catch (e) {
}
굳이 설명을 하자면 이런식이었다.
물론 더 복잡하겠지만, 이정도만 봐도 알사람은 알지 않을까...
'Error' 카테고리의 다른 글
'IntrinsicAttributes' 형식에 'children' 속성이 없습니다. (0) | 2023.08.23 |
---|---|
[Nginx] Nginx 504 Gateway Time-out (0) | 2022.08.03 |
[Ubuntu] This Node instance does not support builds for Node-API version 3 (0) | 2022.07.28 |
[ubuntu] npm missing required argument #1 (0) | 2022.07.28 |
[AWS] EC2 503 Service Temporarily Unavailable (0) | 2022.07.26 |
Comments