AWS에서 mysql을 돌리면서 일주일에 한 번씩 service가 종료되는 현상이 있었다.
//상태 확인
sudo systemctl status mysqld
이전까지는 그냥 자잘한 오류겠거니 그냥 service를 재시작해서 사용했다. 지금 생각해보면 제대로 들여다 보지도 않고 어물쩡 넘긴 행동이 참 한심스럽게 느껴진다.
먼저 mysql error log를 살펴봤다.
sudo vi /var/log/mysqld.log
를 입력하면 바로 log 파일로 이동한다. os마다 log 파일이 다를 수도 있으니 var/log
로 이동하여 mysql log 파일을 찾아보자.
각종 mysql log가 나열되어 있었는데 shift + g
를 입력하여 마지막줄로 이동한다.
mysql이 종료된 원인을 찾아보니 아래와 같았다.
TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option
검색해보니 timestamp 컬럼 데이터 타입에 대한 기본값에 대해 명시적으로 지정을 할지 말지를 결정하는 옵션이라고 한다. 이 값에 대해 제대로 결정하지 않아 에러가 났었나 보다.
sudo vi /etc/my.cnf
를 입력한 후, [mysqld]
안에 explicit_defaults_for_timestamp = 1
를 입력한 후 esc
> :wq
로 저장한다.
sudo vi /etc/my.cnf
[mysqld]
explicit_defaults_for_timestamp = 1
그런 다음
다시 service를 start 해준다.
sudo systemctl enable mysqld // 재부팅 되더라도 서비스 자동 시작
sudo systemctl start mysqld // mysql start
이제 제발 에러가 안나길 ㅠㅠㅠㅠㅠㅠ🙏
혹시 해당 설정 적용 후에 재시작 이슈가 해결이 됐나요??