반응형

 

45,693,756 milliseconds agoThe last packet successfully received from the server was 45,693,756 milliseconds ago 

위와 같은 에러가 나온 경우.

mysql8 에서는 기본 설정시간인 8시간동안 연결이 되지 않으면 끊기기 때문이다.

 

2가지 방법이 있는데, 1번째 방법이 안된다면 2번째 방법으로 하면된다.

 

1.autoReconnect = true

mysql connection url 에 해당 파라미터 추가이다.

아래의 파라미터부분에 autoReconnect=true 를 추가해주면된다. 물론 파라미터가 여러개 있다면 마지막에 &autoReconnect=true 를 추가해주면 된다.

jdbc:mysql://아이피:포트/DB명?파라미터

 

2.wait_timeout 변경

mysql 설정값 중에 wait_timeout, interactive_timeout 이 있다.

두가지 모두 바꿔주는 것이 좋다.

 

interactive_timeout : 활동중인 커넥션이 닫히기 전까지 서버가 대기하는 시간

wait_timeout : 활동하지 않는 커넥션을 끊을때까지 서버가 대기하는 시간 

 

우선 서버에 접속하여 바꿔준다.

 

mysql -u root -p

root계정으로 접속 후에 아래의 명령어를 써준다.

show variables like '%timeout';

기본값을 변경하지 않았다면 아래와 같이 나올것이다.

해당 값들은 초단위 이다. wait_timeout, interactive_timeout 두가지 모두 28800이다. (8시간)

 

해당값을 원하는 시간으로 바꿔준다.

 

set global interactive_timeout = [설정값];
set global wait_timeout = [설정값];
set session interactive_timeout = [설정값];
set session wait_timeout = [설정값];

 

하지만 이 방법은 서버 중지 후 재시작시에 원래대로 돌아간다고 한다.

 

 

my.cnf 에 설정하면 되돌아가지 않는다고 한다. 

반응형

+ Recent posts