[MySQL] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp

깨미·2022년 2월 8일
1

💻 배워가기 💻

목록 보기
25/30
post-thumbnail

AWS에서 mysql을 돌리면서 일주일에 한 번씩 service가 종료되는 현상이 있었다.

Check Mysql Status

//상태 확인
sudo systemctl status mysqld

이전까지는 그냥 자잘한 오류겠거니 그냥 service를 재시작해서 사용했다. 지금 생각해보면 제대로 들여다 보지도 않고 어물쩡 넘긴 행동이 참 한심스럽게 느껴진다.

Check Mysql Log

먼저 mysql error log를 살펴봤다.
sudo vi /var/log/mysqld.log 를 입력하면 바로 log 파일로 이동한다. os마다 log 파일이 다를 수도 있으니 var/log로 이동하여 mysql log 파일을 찾아보자.

각종 mysql log가 나열되어 있었는데 shift + g를 입력하여 마지막줄로 이동한다.

Reason for Service Termination

mysql이 종료된 원인을 찾아보니 아래와 같았다.

TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option

검색해보니 timestamp 컬럼 데이터 타입에 대한 기본값에 대해 명시적으로 지정을 할지 말지를 결정하는 옵션이라고 한다. 이 값에 대해 제대로 결정하지 않아 에러가 났었나 보다.

Solution

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


이제 제발 에러가 안나길 ㅠㅠㅠㅠㅠㅠ🙏

profile
vis ta vie

2개의 댓글

comment-user-thumbnail
2022년 5월 17일

혹시 해당 설정 적용 후에 재시작 이슈가 해결이 됐나요??

1개의 답글