MySQL 5.5 이하에서 Incorrect table definition (TIMESTAMP column 관련) 에러
Development/MySQL 2017. 7. 28. 18:34OS: Ubuntu 14.04 (amd64)
에러 발생한 버전: 5.5 (Ubuntu 14.04에서 apt-get으로 기본 설치되는 버전)
아마존웹서비스(AWS) 서버에 있는 MySQL 데이터베이스를 dump를 떠서 Ubuntu 14.04를 쓰는 개인 피씨에 옮기려고 했는데, 백업이 복구가 되지 않고 아래와 같은 에러가 발생하였다:
$ mysql -uroot -p test < test_170728.sql
Enter password:
ERROR 1293 (HY000) at line 25: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
에러 메세지가 알려주는 것 그대로, 테이블 하나에 TIMESTAMP 타입의 column은 한개만 default로 CURRENT_TIMESTAMP를 지정할 수 있다는 내용이다.
참고로 이 제한사항은 5.6부터 해제되었기 때문에, 지금 쓰는 mysql-server-5.5를 mysql-server-5.6으로 업그레이드하면 문제가 해결된다.
$ sudo apt-get update
$ sudo apt-get install mysql-server-5.6
이미 5.5에서 관리하고 있던 데이터베이스가 있는 경우, 위와 같이 5.6을 설치하면 자동으로 데이터베이스가 이전되므로 별도로 dump를 떠서 옮길 필요는 없다. 다만 만약의 경우를 대비해서 5.6을 설치하기 전에 미리 백업을 해 두면 안전하긴 하다.
'Development > MySQL' 카테고리의 다른 글
MySQL 외부 인터넷에서 접속하도록 설정 (1) | 2017.01.19 |
---|---|
MySQL 접속 포트(port) 번호 변경하기 (0) | 2017.01.16 |
MySQL / DB 백업 및 복구 (0) | 2009.11.30 |
MySQL / Foreign key 삭제중 1025 에러 발생하는 경우 (0) | 2009.11.30 |
MySQL / 외래키 설정(기존 테이블 수정) (0) | 2009.05.27 |