2014-02-07 5 views
1

myisam 테이블을 만들고 채우는 서버 A에 mysql 버전 5.6.10이 있습니다. 만들어진 테이블에는 int, varchar 및 datetime 필드가 있습니다. 이 서버를 서버 A에서 서버 B (mysql 5.5.10)로 rsync하면 다음 오류가 발생합니다. 오류 1033 (HY000) : 파일의 잘못된 정보 : test1.frmmysql myisam datetime 5.6.10 ~ 5.5.10 테이블 손상

datetime 필드가없는 테이블 어떤 오류도주지 않는다. 서버 A에서 테이블 덤프를 가져 와서 서버 B에서 실행해도 잘 작동합니다.

MySQL 5.6.10 버전에 문제가 있습니까? 이 문제를 어떻게 해결할 수 있습니까? 성능에 영향을 미치기 때문에 모든 테이블에 대해 mysqldump를 사용할 여유가 없다.

답변

1

는 불행하게도이 MySQL 5.6upgrade notes에서 언급

호환되지 않는 변화 : TIME, DATETIME, 그리고 TIMESTAMP 컬럼의 경우, MySQL은 5.6.4 이전에 생성 된 테이블에 필요한 저장 작성된 테이블에 필요한 저장 다르다 5.6.4 이상. 이는 의 변경으로 인해 이러한 임시 유형이 소수 부분을 가질 수 있도록합니다. MySQL 5.5에서 MySQL 5.6.4 또는 으로 업그레이드 한 후에는 MySQL 5.5에서 MySQL 5.6 TIME, DATETIME 및 TIMESTAMP 유형으로 업그레이드하는 것이 좋습니다. ALTER TABLE은 현재 MySQL 5.5 과 MySQL 5.6.4 (또는 그 이상) 바이너리 형식으로 임시 컬럼을 포함하는 테이블을 생성 할 수 있지만, 이없는 경우에는 테이블을 다시 생성하기가 어렵습니다. 덧붙여 말하면, MySQL 5.6.4에서 앞에서 설명한 임시 유형이 더 효율적입니다. MySQL 5.6.4에서 임시 유형의 변경 사항에 대한 자세한 내용은 " 날짜 및 시간 유형의 저장소 요구 사항"절을 참조하십시오.

메모리 저장소를 사용하여 5.5에서 5.6으로가는 해결 방법이 언급되어 있지만 다운 그레이드에 대해서는 아무런 언급이 없습니다.

사용 가능한 조언은 http://bugs.mysql.com/bug.php?id=71381입니다.

내가 여기에 볼 수있는 유일한 옵션은 5.5

에 가져와 다음 5.6에서 이러한 시간적 열이있는 테이블의 5.6에 덤프를하는 것입니다