2011-11-30 8 views
0

これはとても新しく、sqliteを使用してデータベースを作成しようとしています。コードの最初の行の後にこのエラーが発生します。誰が何が起こっているのか分かっていますか?Beginner to 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 

ありがとうございます!

答えて

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)であることに注意してください。

+0

それはあまりにも軽いエラーメッセージを提供するためです –

+0

@derobertありがとう、私はそれを理解したと思う。私が入っていたディレクトリを変更したところ、データベースを作成できたので、おそらく許可が不足していました。 –

0

チェック書き込み権限、およびチュートリアルで慎重に各ステップに従っていることを確認します

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

0

チェックあなたは、このコマンドを実行しているディレクトリへのアクセス権を持っている場合。 sqliteがデータベース用のファイルを作成する書き込み権限が必要です。

権限がない場合は、chmodコマンドで権限を変更してみてください。 ユーザープロファイルに書き込み権限があるディレクトリに変更することもできます。

私は/ usr/binにデータベースを作成しようとしましたが、私のプロファイルに対する書き込み権限がないので失敗しました。しかし、ホームディレクトリ($ HOME)に移動すると、データベースを作成することができました。

関連する問題