所以我对此非常陌生,我正在尝试使用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
提前致谢!
答案 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)
检查写入权限,并确保在教程中仔细遵循每个步骤:
答案 2 :(得分:0)
检查您是否拥有运行此命令的目录的权限。 您需要具有写权限,其中sqlite将为您的数据库创建一个文件。
如果您没有权限,请尝试通过chmod命令更改权限。 您还可以切换到用户配置文件具有写权限的目录。
我尝试在/ usr / bin中创建数据库但失败了,因为它没有我的配置文件的写权限。但是当我移动到我的主目录($ HOME)时,我就能够创建数据库了。