2017-01-10 79 views
1

我使用phpMyAdmin创建了一个名为test的数据库。从火鸟导入到mysql时出错

从命令提示符我尝试这样做:

c:\xampp\mysql\bin>mysql -u root test < c:\scriptTest\Telemed.sql 

,并得到这个错误:

ERROR 1064 (42000) at line 7: You have an error in your SQL syntax; check the ma 
nual that corresponds to your MariaDB server version for the right syntax to use 
near ''127.0.0.1/gds_db:C:\TELEMED\TELEMED.GDB' USER 'SYSDBA' 
    PAGE_SIZE 4096 
    D' at line 1 

我的脚本文件有这个

/* SQL Manager Lite for InterBase and Firebird 5.2.3.2 */ 
/* --------------------------------------------------- */ 
/* Host  : localhost        */ 
/* Database : C:\TELEMED\TELEMED.GDB     */ 


CREATE DATABASE '127.0.0.1/gds_db:C:\TELEMED\TELEMED.GDB' USER 'SYSDBA' 
PAGE_SIZE 4096 
DEFAULT CHARACTER SET NONE; 

可有人请让我知道什么是错的。

+0

这样的标记可以被包含在SQL中的_backticks_中,但不能包含在_single quote chars_中。您的文件语法无效。 MySQL没有办法做到这一点。 – arkascha

+0

除此之外:数据库名称“127.0.0.1/gds_db:C:\TELEMED\TELEMED.GDB”看起来不像是一个聪明的事情... – arkascha

+1

@arkascha在Firebird中标识服务器(127.0.0.1 ),端口(gds_db aka端口3050)和数据库路径(C:\ TELEMED \ TELEMED.GDB),尽管通常使用别名而不是完整路径更好。 –

回答

1

显示的create database语句是火鸟特定的。你需要将它翻译成与MySQL相同的东西。你可以找到the MySQL equivalent in the reference manual

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name 
    [create_specification] ... 

create_specification: 
    [DEFAULT] CHARACTER SET [=] charset_name 
    | [DEFAULT] COLLATE [=] collation_name 

简单create database telemed可能是你所需要的;尽管您应该仔细考虑是否需要缺省字符集。

如果您已经创建了数据库,您可以简单地删除此语句。

请注意,这适用于迁移时的更多事情,例如Firebird中的引用对象名称用双引号(SQL标准)括起来,而MySQL使用反引号。在语法和数据类型等方面可能也存在一些差异。