2015-11-19 41 views
4

我一直在開發一個使用mysql 5.6的應用程序,現在我必須將它安裝在使用mysql 5.5的生產服務器上。問題是通過mysqldump生成的備份似乎不是向後兼容的。將架構備份從MySQL 5.6恢復到5.5

因爲我不能在任何機器上更改mysql版本。我正在尋找一種方法來導出5.5版本的向後兼容數據,或者從5.6導入數據。

我遇到的錯誤是:

ERROR 1064 (42000) at line 105: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) DEFAULT NULL, 
    `is_superuser` tinyint(1) NOT NULL, 
    `username` varchar(30)' at line 4 

有問題的代碼是:似乎

-- 
-- Table structure for table `auth_user` 
-- 

DROP TABLE IF EXISTS `auth_user`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `auth_user` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `password` varchar(128) NOT NULL, 
    `last_login` datetime(6) DEFAULT NULL, 
    `is_superuser` tinyint(1) NOT NULL, 
    `username` varchar(30) NOT NULL, 
    `first_name` varchar(30) NOT NULL, 
    `last_name` varchar(30) NOT NULL, 
    `email` varchar(254) NOT NULL, 
    `is_staff` tinyint(1) NOT NULL, 
    `is_active` tinyint(1) NOT NULL, 
    `date_joined` datetime(6) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `username` (`username`) 
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 
/*!40101 SET character_set_client = @saved_cs_client */; 

的問題是datetime(6),至極不是由MySQL 5.5

回答

2

我接受最終將datetime(6)的所有外觀替換爲備份文件中的datetime

目前工作一切正常。