LoginSignup
0
0

データベースにアクセスできない!?

Posted at

sqlit3でのエラー表示です。

SQLSTATE[HY000]: General error: 8 attempt to write a readonly database

このエラーはデータベースが読み取り専用モードであるため、書き込み操作が試行された場合に発生するエラーです。
このエラーの原因としては、データベースファイル自体が読み取り専用に設定されているか、データベースのパーミッションが適切に設定されていないかのいずれかが考えられます。
じゃあ直そう!
もう力技です。
すべての人に編集権限と閲覧権限を与えます

sudo chmod 777 <データベース名>

例えばdrink.dbなら

sudo chmod 777 drink.db

すると違うエラーが...

SQLSTATE[HY000]: General error: 14 unable to open database file

データベースファイルを開くことができない場合に発生するエラーです。
普通はパスが間違っているとか、ファイルが存在しないときとかに出ますが、今回はどっちでもないことは確定しています。
読み取り権限もあるし....
これ、通過するディレクトリにも権限必要なんです。
なので

sudo chmod 777 <ディレクトリ名>

呼び出している一番上のファイルがあるディレクトリからデータベースファイルまで通過するディレクトリ全てに同じように設定します。
これで解決!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0