2017-01-10 100 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使用反引號。在語法和數據類型等方面可能也存在一些差異。