web-dev-qa-db-ja.com

「ステートメントが失敗しました、SQLSTATE = 08001」というエラーが発生するのはなぜですか?

Firebird SQLに接続しようとすると、このエラーが発生します。

firebird$ isql-fb 'db.FDB' -u SYSDBA -p <PASS>

Statement failed, SQLSTATE = 08001
I/O error during "open" operation for file "CAFW.FDB"
-Error while trying to open file
-Permission denied
Use CONNECT or CREATE DATABASE to specify a database

それを解決するために何ができますか?私は現在のユーザーがファイルへの読み取り/書き込みアクセス権を持っていることをすでに確認しています。

$ Sudo chown firebird:firebird ./db.FDB
$ Sudo chmod 770 ./db.FDB # should only need 660


$ ls -lah
-rw-rw---- 1 firebird firebird 53M May  2 17:13 CAFW.FDB
1
Evan Carroll

ホームが暗号化されたディレクトリにある場合、権限自体に関係なく、デーモン自体はそのホームディレクトリを読み取ることができません。

isql-fbにファイル名をフィードしますが、そのファイルはisql-fbでは読み取られませんが、fbserverによって読み取られます。これにより、権限に関係なく、暗号化されたマウントにアクセスできなくなります。

0
Evan Carroll

Firebirdグループに自分を追加する必要があります

Sudo adduser `id -un` firebird 

サーバーがクラシックまたはスーパークラシックの場合は、常にdbの前にローカルホストアドレスを使用する

こちらの長いスレッドをご覧ください http://firebird.1100200.n4.nabble.com/Fwd-Have-you-tried-firebird-2-5-SuperClassic-from-the-packages-td3053790.html =

1
Mariuz