2014-05-17 93 views
1

我想給OpenGeoDB導入到數據庫上我的Debian VM與MySQL Ver 14.14 Distrib 5.6.17MySQL錯誤1064(42000)進口OpenGeoDB

$ mysql -uroot -p -h localhost geodb < opengeodb-begin.sql 

它失敗,出現錯誤

ERROR 1064 (42000) at line 14: 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 'TYPE=InnoDB CHARACTER SET utf8' at line 6 

MySQL的代碼在opengeodb-begin.sql中從第6行開始的OpenGeoDB download area看起來像:

/* 
* MySQL 
*/ 



SET NAMES 'utf8'; 

BEGIN; 
/* 
* Table structure for table 'geodb_type_names' 
*/ 

create table geodb_type_names (
    type_id    integer not null, 
    type_locale   varchar(5) not null, 
    name     varchar(255) not null,    /* varchar(500)? */ 
unique (type_id, type_locale) 
) TYPE=InnoDB CHARACTER SET utf8; 

因此,DB服務器似乎與TYPE=InnoDB CHARACTER SET utf8;有問題。

同時它可以在我的遠程Ubuntu服務器上運行,並使用MySQL Ver 14.14 Distrib 5.1.41

我看到的唯一顯着差異是MySQL版本。

什麼會導致錯誤?

回答

3

好的,看起來確實如此,問題在於數據庫服務器版本。關鍵字TYPE不再受支持,並被替換爲ENGINE

我更換了所有TYPE=...ENGINE=...CREATE之類的語句

create table geodb_type_names (
    type_id    integer not null, 
    type_locale   varchar(5) not null, 
    name     varchar(255) not null,    /* varchar(500)? */ 
unique (type_id, type_locale) 
) ENGINE=InnoDB CHARACTER SET utf8; 

現在,它的工作原理。