テストするローカルfirebirdインスタンスをセットアップしようとしていますが、ISQLでも接続できません。クイックスタートガイドに従ってフォローしようとしました ここ :
CONNECT ..\examples\empbuild\employee.fdb user SYSDBA password masterkey;
その結果:
Statement failed, SQLSTATE = 08001
unavailable database
いくつか検索した後、私はそれを次のように変更しようとしました:
CONNECT "localhost:C:\Program Files\Firebird\Firebird_2_5\examples\empbuild\employee.fdb" user SYSDBA password masterkey;
その結果:
Statement failed, SQLSTATE = 28000
cannot attach to password database
正しいディレクトリパスがあることを確認した後、今のところ接続を断念し、新しいDBを作成してみることにしました。
SQL>CREATE DATABASE 'C:\data\test.fdb' page_size 8192
CON>user 'SYSDBA' password 'masterkey';
これも私にエラーを与えました:
Statement failed, SQLSTATE = 08001
unavailable database
私が遭遇する可能性のある一般的な落とし穴はありますか?また、firebirdサービスを実行している場合と実行していない場合の両方で、上記のコマンドを試しました。また、SQLSTATEコードに関する詳細なリファレンスはありますか?
私のコメントですでに述べたように、問題はFirebirdサーバーをアプリケーションとして実行することによって引き起こされます。 Firebirdにはパスワードデータベースがあります(security2.fdb
)in C:\Program Files\Firebird\Firebird_2_5
。このデータベースは(完全ではありませんが)通常のFirebirdデータベースであるため、サーバーにはこのデータベースへの書き込みアクセスが必要です(トランザクションなど)。
デフォルトでは(UACを使用)、ユーザーはパスワードデータベースへの書き込みアクセス権を持っていないため、管理者に昇格する必要があります。したがって、Firebirdにアクセスするには、アプリケーションを十分な権限を持つサービスとして実行するか(たとえば、デフォルトのインストーラーによって実行されるように)、サーバーをアプリケーションとして実行して「管理者として」実行する必要があります。もう1つのオプションは、ProgramFilesにインストールしないことです。
このBTWは、サンプルの従業員データベースにアクセスするときにdoubleを適用します。これは、このデータベースファイルもProgramFilesフォルダーにあるためです。