2015-06-17 33 views
0

我試圖安裝PolicyD V2,但是從創建SQL文件sqlite3的數據庫時,它拋出錯誤導入DB:的sqlite3無法從SQL文件

SQLite version 3.7.17 2013-05-20 00:56:22 
sqlite> .read /usr/doc/policyd2-2.0.14/policyd2.sqlite 
Error: near line 1: unrecognized token: "#" 
Error: near line 43: no such table: policies 
Error: near line 44: no such table: policies 
Error: near line 45: no such table: policies 
Error: near line 46: no such table: policies 
Error: near line 47: no such table: policies 
Error: near line 174: unrecognized token: "#" 
Error: near line 215: unrecognized token: "#" 
Error: near line 263: no such table: quotas 
Error: near line 264: no such table: quotas 
Error: near line 303: unrecognized token: "#" 
Error: near line 447: no such table: amavis_rules 
Error: near line 462: unrecognized token: "#" 
Error: near line 570: unrecognized token: "#" 
Error: near line 617: unrecognized token: "#" 

而且/usr/doc/policyd2-2.0.14 /policyd2.sqlite看起來是這樣的:

line:1 # Core schema 
line:2 # Copyright (C) 2009, AllWorldIT 
line:3 # Copyright (C) 2008, LinuxRulz 
... 

/* Policies */ 
CREATE TABLE policies (
     ID      INTEGER PRIMARY KEY AUTOINCREMENT, 
     Name     VARCHAR(255) NOT NULL, 
     Priority    SMALLINT NOT NULL, 
     Description    TEXT, 
     Disabled    SMALLINT NOT NULL DEFAULT '0' 
) ; 

... 
line:43 INSERT INTO policies (Name,Priority,Description) VALUES ('Default',0,'Default System Policy'); 
line:44 INSERT INTO policies (Name,Priority,Description) VALUES ('Default Outbound',10,'Default Outbound System Policy'); 
line:45 INSERT INTO policies (Name,Priority,Description) VALUES ('Default Inbound',10,'Default Inbound System Policy'); 
line:46 INSERT INTO policies (Name,Priority,Description) VALUES ('Default Internal',20,'Default Internal System Policy'); 
line:47 INSERT INTO policies (Name,Priority,Description) VALUES ('Test',50,'Test policy'); 

創建的表:

sqlite> .tables 
checkhelo_blacklist  policy_group_members  
checkhelo_tracking   policy_groups    
checkhelo_whitelist  policy_members   
greylisting_autoblacklist quotas_limits    
greylisting_autowhitelist quotas_tracking   
greylisting_tracking  session_tracking   
greylisting_whitelist 

我可以創造 '政策', '配額', 'amavis_rules' TA手工布萊斯。

那麼這裏有什麼錯?已創建其他表格。

回答

0

它是由控制檯和一些格式不正確的(編碼/解碼)字符在文件中引起的,例如製表符,空格,換行符。

解決方案是使用grep。

grep -v "#" sql.file | sqlite3 sqlite3.db 
相關問題