我想将OpenGeoDB导入到我的Debian VM上的数据库中,并使用MySQL Ver 14.14 Distrib 5.6.17
:
$ 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
来自OpenGeoDB download area的opengeodb-begin.sql中第6行的MySQL代码如下所示:
/*
* 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;
因此,数据库服务器似乎遇到TYPE=InnoDB CHARACTER SET utf8;
的问题。
同时它可以在我的远程Ubuntu服务器上使用MySQL Ver 14.14 Distrib 5.1.41
。
我看到的唯一重要区别是MySQL版本。
什么可能导致错误?
答案 0 :(得分: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;
现在可行。