[MySQL] Error: Too many connections 해결

Miseon (MIMI)·2024년 2월 19일

학습

목록 보기
2/3
post-thumbnail

🔖 개요

Next.js에서 mysql connection을 시도하며 API 개발을 하던 도중, 다음과 같은 에러 메시지를 마주했다.

Error: Too many connections

📍 connected thread

mysql에서 최대 연결 가능한 connection 수를 지정할 수 있다. 해당 에러는 최대 연결 가능한 connection 수를 초과하여 더이상 mysql connect가 불가능하기 때문에 발생한다.

현재 connection에 대해 조회하는 방법은 다음과 같다.

show global variables like '%timeout';

Threads_connected이 현재 연결된 connection 수를 뜻한다.

📍 connection 관리

두 가지 방법을 이용하여 connection을 관리할 수 있다.

  1. 접속 가능한 max_connection 수 늘리기
  2. timeout을 줄여 사용하지 않는 connection을 빠르게 끊어주기

max_connection을 늘릴수록 ram 사용량이 늘어나므로, timeout을 줄이는 방법을 택했다.

timeout 정보를 확인하는 방법은 다음과 같다.

show variables like '%timeout';

기본적으로 지정돼있는 timeout이 28800초(8시간)이므로, 연결이 끊기려면 꽤 오래 기다려야한다.

set global wait_timeout=10;

따라서 timeout을 짧게 10초로 지정해주었다.

🔖 마치며

mysql connection을 생성한 후, 불필요한 connection이 남지 않도록 .end().destroy()를 이용하여 connection을 끊어주는 것이 중요하다.

profile
방황하는 개발자

1개의 댓글

comment-user-thumbnail
2025년 2월 5일

커넥션 정보 확인하는 명령어를 show variables like '%timeout'; 로 적었습니다. 오타났네요

답글 달기