初学者到sqlite - 无法创建数据库

时间:2011-11-30 14:37:59

标签: sqlite

所以我对此非常陌生,我正在尝试使用sqlite创建一个数据库(带有文档中的说明)。我在第一行代码后得到此错误。有谁知道发生了什么事?

我在OS X Lion上使用终端。

$ sqlite3 ex1.db
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table tb11(one varchar(10), two smallint);
Error: unable to open database "ex1.db": unable to open database file

提前致谢!

3 个答案:

答案 0 :(得分:2)

最明显的事情是缺少写入当前工作目录的权限。这是我在这种情况下得到的确切错误消息(太糟糕了,它不打算包含诸如“权限被拒绝”之类的有用信息)

如果您有strace的访问权限,则可以这样确认:

$ strace -f sqlite3 ex1.db 'create table tb11(one varchar(10), two smallint);' 2>&1 | grep ex1.db
execve("/usr/bin/sqlite3", ["sqlite3", "ex1.db", "create table tb11(one varchar(10"...], [/* 58 vars */]) = 0
access("ex1.db", F_OK)                  = -1 ENOENT (No such file or directory)
stat("/tmp/d/ex1.db", 0x7fffb18fc690)   = -1 ENOENT (No such file or directory)
open("/tmp/d/ex1.db", O_RDWR|O_CREAT, 0644) = -1 EACCES (Permission denied)
open("/tmp/d/ex1.db", O_RDONLY)         = -1 ENOENT (No such file or directory)
write(2, "Error: unable to open database \""..., 70Error: unable to open database "ex1.db": unable to open database file

请注意open的结果是EACCESS (Permission denied)

答案 1 :(得分:0)

检查写入权限,并确保在教程中仔细遵循每个步骤:

http://www.sqlite.org/sqlite.html

答案 2 :(得分:0)

检查您是否拥有运行此命令的目录的权限。 您需要具有写权限,其中sqlite将为您的数据库创建一个文件。

如果您没有权限,请尝试通过chmod命令更改权限。 您还可以切换到用户配置文件具有写权限的目录。

我尝试在/ usr / bin中创建数据库但失败了,因为它没有我的配置文件的写权限。但是当我移动到我的主目录($ HOME)时,我就能够创建数据库了。