2014-02-07 32 views
1

我在一臺服務器有MySQL版本5.6.10我在哪裏創建和填充MyISAM表。創建的表具有int,varchar和datetime字段。當我rsync的從服務器A這臺服務器B(具有的MySQL 5.5.10),我收到以下錯誤 ERROR 1033(HY000):在文件中不正確的信息:test1.frmMySQL的MyISAM的日期時間5.6.10到5.5.10表損壞

對於表沒有時間字段這個過程不會給出任何錯誤。即使當我從服務器A轉儲表並在服務器B上運行時,它也能正常工作。

是否有與MySQL 5.6.10版本的任何問題?我該如何解決這個問題?我不能爲我所有的桌子使用mysqldump,因爲它會影響性能。

回答

1

不幸的是,這是在upgrade notes提到MySQL 5.6

不相容變化:對於TIME,DATETIME和TIMESTAMP列,爲MySQL 5.6.4之前創建表所需的存儲 從創建的表需要 存儲不同在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(或更高版本)的二進制格式的時間列的表的創建,但是這使得它更難以 重新在.FRM文件不 可用的情況下表。此外,從MySQL 5.6.4開始,前面提到的 時間類型更節省空間。欲瞭解更多信息,在MySQL 5.6.4約 更改時間類型,請參閱「日期和時間類型 存儲要求」一節。

還提到了使用內存存儲從5.55.6的解決方法,但它沒有提及降級。

提供唯一的建議是從http://bugs.mysql.com/bug.php?id=71381

我在這裏看到的唯一的選擇就是做與5.6這些時間列的表的5.6,然後導入他們轉儲5.5