mysql이 갑자기 꺼짐 이슈 발생 해결기

sunn_ni·2024년 6월 13일
0

트러블슈팅

목록 보기
4/5

출근해서 그동안에 장애가 없었나 로그를 들여다 봤는데 오전 6시경부터 약 20분간
mysql이랑 연결이 안되는 에러가 발생한 것을 발견했다.

Can't add new command when connection is in closed state

위의 에러가 지속적으로 발생하였다.
(참고로 mysql2라이브러리)

해당 에러가 발생했었을땐 DB서버 이슈가 있었기에 DB서버로 이동 후 mysql에러로그로 들어갔다.

log-error = /var/log/mysql/error.log
general_log_file = /var/log/mysql/general.log
slow_query_log_file = /var/log/mysql/slow.log

로그 위치는 위와 같다.

error.log에 들어가보니 해당시간에 shutdown 명령이 발생된 상황을 알 수 있었다.

이때부터 대혼란.. 대체 누가 shutdown명령을 내렸는가..

누가 해당 명령을 내렸는지 알 기 위해 아래와 방법을 사용하였다.

**history**
명령어 확인

**sudo cat /var/log/auth.log | grep 'sshd'**
/var/log/auth.log 파일은 모든 인증 관련 이벤트를 기록합니다. SSH 로그인 시도 및 성공 기록을 포함하여 다양한 인증 관련 정보를 찾을 수 있습니다.

**sudo cat /var/log/syslog | grep 'sshd' **
var/log/syslog 파일도 시스템의 다양한 활동을 기록하며, 로그인 관련 정보가 포함될 수 있습니다.

이렇게 다양한 로그를 본 결과 syslog에서 드디어 해당시간대에 어떤 이벤트가 발생했는지 알 수 있게 되었다.

.
.
.

Starting Daily apt upgrade and clean activities...

Ubuntu 시스템에서 일일 자동 패키지 업데이트(Apt upgrade)가 실행되었던것...
구글링해보니 나와같은 이슈를 겪은 사람들을 많이 볼 수 있었다.

https://askubuntu.com/questions/1037285/starting-daily-apt-upgrade-and-clean-activities-stopping-mysql-service

.
.

그렇다면 어떻게 해야할까..?
업데이트를 꺼버리는 방법도 있긴 한데.. 그렇다고 하기에 업그레이드를 모두 막아놓자니 마음에 걸렸다.
구글링을 해도 전체 업그레이드를 막는 방법만 나왔다. 그래서 chatgpt에게 검색한 결과, blacklist라는 설정을 통해서 mysql만 업그레이드를 안하게끔 할 수 있다는 답변을 받고.. 위의 방법을 적용시켜서 지켜보기로했다.
(시스템업그레이드가 또 언제될지 몰라서 우선은 두고봐야할 듯)

방법은 아래와 같다.

1. sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

2. 파일에서 Unattended-Upgrade::Package-Blacklist 섹션을 찾아 다음과 같이 설정

Unattended-Upgrade::Package-Blacklist {
    "mysql-server";
    "mysql-client";
    "mysql-common";
    "mysql-server-core-*";
    "mysql-client-core-*";
};

unattended-upgrades를 사용하고 있는 경우, MySQL 패키지를 자동 업그레이드에서 제외하려면 /etc/apt/apt.conf.d/50unattended-upgrades 파일을 편집한다.
이 블랙리스트에 포함된 패키지는 자동으로 업그레이드되지 않는다.

profile
방황중인 서버개발자

0개의 댓글