2016-05-27 6 views
0

私のCassandra DBにリモートマシンからのドロップレットでどのように接続することができるかをお尋ねします。私はこの記事に書かれているすべてのものでした:Install Cassandraをしかし、私は私のC#コードから接続しようとすると:リモートマシンからCassandraに接続する

「Cassandra.NoHostAvailableException」カサンドラ中:私は例外を取得しています

cluster = Cassandra.Cluster.Builder() 
    .WithCredentials("abc", "abc") 
    .AddContactPoints(new[] { "12.34.56.78" }) 
    .WithPort(9168) 
    .Build(); 

var session = cluster.Connect(); 
var keyspace = "Test"; 
session.CreateKeyspaceIfNotExists(keyspace); 
session.ChangeKeyspace(keyspace); 

。 DLL

追加情報:

:ホストのどれもが、クエリのために試した(12.34.56.78:9168を試してみました)
ご利用いただけます0

DBeaverのような他のCassandra GUIクライアントからも試しましたが、同じエラーが発生しています。

My DropletはUbuntu 14.04です。 localhostから私はカサンドラに問題はない。私の唯一の問題はリモートからだ。ここで

に、netstat -plunt

須藤からの結果である

Open Ports

なぜ、これは可能性があり、私はこれをどのように修正するのですか?

+0

cassandra.yamlもできますか? IPを持つ部品のみ。シードなど –

+0

はい、listen_adressをCassandraがインストールされているサーバのIPアドレスに設定しました。また、シードもサーバIPに変更しました。認証者で私はCassandraを保護するためにPasswordAllowedに変更しました。 #ipv4。アドレスが1つしかない場合は、ipv4/ipv6に関係なく選択されます。 listen_address:46.101.183.187 #listen_interface:eth0 #listen_interface_prefer_ipv6:false - シード: "46.101.183.187" authenticator:PasswordAuthenticator – fstafai

+0

デフォルトの「9042」ではなく「9168」を使用する理由はありますか? – jorgebg

答えて

0

cqlshをローカルで、つまりCassandraが動作しているホストからローカルに実行できることを確認してください。できない場合は、Cassandraが実行されていることを確認し(ログを確認)、接続先のインターフェイスで待機します。

ローカルに接続できる場合は、カッサンドラのrpc_addressとrpc_broadcast_addressの設定を確認してください。 'localhost'以外の値に設定する必要があります(デフォルトで設定されています)。

9042ポートはデフォルトでCQL用ですので、リセットしないことをお勧めします。

+0

はい、私はすでにローカルアクセスの問題がないことを私の質問で書いています。主な問題は自分のコードを介して接続できないことです。私はこの液滴をデータベースサーバーとして使用しています。私はCassandra以外には何もインストールしていません。 – fstafai

+0

rpc_addressとrpc_broadcast_addressの設定を確認しましたか? – Andrew

1

あなたは9042.

listen_interfaceは、セットアップ、ノード間の通信に使用されるポートを使用する必要があります。

他のCassandraノードに接続するためにCassandraがバインドするIPアドレスまたはホスト名。このパラメータまたはlisten_interfaceを設定します。両方ではありません。 (デフォルト:localhost)クライアント接続(スリフトのRPCサービスとネイティブトランスポート)のリスンアドレス

あなたがrpc_addressを変更してカサンドラデーモン

を再起動する必要があります。有効な値は次のとおりです。

関連する問題