首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlite3无法从sql文件导入db。

sqlite3无法从sql文件导入db。
EN

Stack Overflow用户
提问于 2015-06-17 15:45:15
回答 1查看 1.4K关注 0票数 0

我正在尝试安装PolicyD v2,但是当从sqlite3文件创建sqlite3数据库时,它会抛出错误:

代码语言:javascript
复制
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 d2-2.0.14/policyd2 d2.sqite如下所示:

代码语言:javascript
复制
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');

创建的表格:

代码语言:javascript
复制
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”表。

,那么这里有什么问题呢?创建了其他表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-21 10:46:17

这是由控制台和文件中的一些格式错误(编码/解码)字符(如制表符、空格、新行)引起的。

解决这个问题的方法是使用grep。

代码语言:javascript
复制
grep -v "#" sql.file | sqlite3 sqlite3.db
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30896364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档