最も明白なことは、現在の作業ディレクトリに書き込む権限がないことです。
:あなたは
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)
であることに注意してください。
それはあまりにも軽いエラーメッセージを提供するためです –
@derobertありがとう、私はそれを理解したと思う。私が入っていたディレクトリを変更したところ、データベースを作成できたので、おそらく許可が不足していました。 –