DBD::SQLite::db do failed: unable to open database file at
perl cgi から sqlite にアクセスして読み書きする
cgiをあれしていたが、いままで作業してきたディレクトリを
ごっそり別ディレクトリに移したら上記のようなエラーメッセージが出た。
ページの表示を出来るってことは、
読み取るときはエラーにならず、書き込みのときにエラッてる。
コマンドラインからinsertは出来る
$ sqlite3 default.db >> insert into user (name) values ('ok?'); >>
.dbファイルの権限をいじっても解決せず。
http://stackoverflow.com/questions/1122885/why-cant-dbdsqlite-insert-into-a-database-through-my-perl-cgi-script]
ググったら毛唐の人が、親ディレクトリの権限を書き込み可能にしないとダメ
みたいなことを言っていたので、盲目的に従ったら動いた。
$ cd .. $ chmod 707 mojo/
どうやらsqliteはinsertとかを行う際にrollback用の
ジャーナルファイルを作成するけど、ディレクトリ権限で
それが作成出来ないためエラってたとのこと。
ググってこれ出てこなかったらどうすれば良かったんだろう。
っていうかそれだとコマンドラインからだと
INSERT出来たのが説明つかないけどどういうことなんだろう。