2016-04-11 46 views
3

私はUbuntuを初めて使い、コンピュータにインストールしました。私はSambaをインストールし、 "/ samba"と "/ hd"というフォルダを共有しました。 Firebirdをダウンロードしてインストールし、Windowsで作成したデータベースを "/ samba"にコピーしました。これは私のJavaコードです:Firebird(Ubuntu)に接続できません

public static Connection getConnection() throws SQLException { 
     Connection connection = null; 
     try { 
      Class.forName("org.firebirdsql.jdbc.FBDriver"); 
     } catch (ClassNotFoundException e) { 
      throw new RuntimeException(e); 
     } 
     connection = DriverManager.getConnection("jdbc:firebirdsql://localhost:3050/samba/LNX.FDB", "sysdba", 
       "masterkey"); 
     return connection; 
    } 

    public static void main(String[] args) throws SQLException { 
     getConnection(); 
    } 

私はこのエラーを取得する:

Exception in thread "main" org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544344. I/O error during "open" operation for file "samba/LNX.FDB" 
Error while trying to open file 
null 
    at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:120) 
    at org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:136) 
    at java.sql.DriverManager.getConnection(DriverManager.java:571) 
    at java.sql.DriverManager.getConnection(DriverManager.java:215) 
    at br.com.ipsnet.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16) 
    at br.com.ipsnet.jdbc.ConnectionFactory.main(ConnectionFactory.java:22) 
Caused by: org.firebirdsql.gds.GDSException: I/O error during "open" operation for file "samba/LNX.FDB" 
Error while trying to open file 
null 
    at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.java:2098) 
    at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2048) 
    at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.internalAttachDatabase(AbstractJavaGDSImpl.java:463) 
    at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscAttachDatabase(AbstractJavaGDSImpl.java:411) 
    at org.firebirdsql.jca.FBManagedConnection.<init>(FBManagedConnection.java:105) 
    at org.firebirdsql.jca.FBManagedConnectionFactory.createManagedConnection(FBManagedConnectionFactory.java:509) 
    at org.firebirdsql.jca.FBStandAloneConnectionManager.allocateConnection(FBStandAloneConnectionManager.java:65) 
    at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:118) 
    ... 5 more 

私は "/サンバ" とタイプに行く場合:

isql-fb 
connect "localhost:/samba/LNX.FDB" user 'SYSDBA' password 'masterkey'; 

それは私がすることができ、完全に正常に動作します選択、削除、更新、挿入、...全く問題ありません。

私はUbuntuの中で私のデータベースに接続するために私のWindowsマシン上でIBExpertを使用している場合、それは言う:

An assertion failed! 

../src/common/strconv.cpp(3031): assert "Assert failure" failed in wxCSConv(): invalid encoding value in wxCSConv ctor 
しかし、それは接続されている:私はFlamerobinを使用している場合

Unable to complete network request to host "Server-Test". 
Failed to estabilish connection. 

それは述べています。私はこの問題は、接続文字列jdbc:firebirdsql://localhost:3050/samba/LNX.FDBで指定したパスがsamba/LNX.FDB、およびない/samba/LNX.FDBであるということです...、

+0

たぶん、あなたはIBExpert、あなたのJavaアプリケーションのためのディレクトリへのアクセスを許可する必要があります... – Majkl

+0

私は"chmod 755/samba -R"を実行しましたが、エラーはまだあります。 – Bolaum

答えて

1

を、選択、削除、更新することができます。相対パスは、プラットフォーム、ユーザ、およびFirebirdの設定によって異なります。 Jaybird release notesに記載したよう

あなたはjdbc:firebirdsql://localhost:3050//samba/LNX.FDBを使用する必要があります。

On Linux the root / should be included in the path. A database located on /opt/firebird/db.fdb should use the URL below (note the double slash after port!).

jdbc:firebirdsql://host:port//opt/firebird/db.fdb 

また、あなたの代わりにエイリアスを定義し、それを使用することができます。

IB ExpertとFlamerobinの問題に関しては、それらは無関係であるように見え、実際には別々の質問でなければなりません。 IBエキスパートの問題は、(IPv4)IPアドレスに解決できないホスト名(Server-Test)を指定したか、サーバーが接続要求を受け入れていないようです。理由は、FirebirdサービスがそのIPアドレスでリッスンしていない可能性があります。 UbuntuではデフォルトでFirebirdはlocalhostだけをリッスンします。 flamerobinのエラーは、Flamerobinのバグのように聞こえます(または、サポートされていない接続文字セット(?)を指定しています)。

sambaを使用し、ネットワーク共有を使用する場合:Firebirdデータベースをネットワーク共有に置かないでください。ネットワーク共有(特に複数のサーバ)上のFirebirdデータベースにアクセスすると、データベースが破壊される可能性があります。複数のホストからFirebirdデータベースにアクセスするには、Firebirdサーバーを使用して接続する必要があります。 IBExpertについて

+0

これは機能しました。ありがとうございました!今度はIBExpertの問題を解決することに集中できます。 – Bolaum

0

:このスクリーンショットは、Ubuntuのと接続するための登録フォームを見て方法の例です:

enter image description here

関連する問題