3

私たちは大学のプロジェクト、つまりJavaでのカープーリングサービスを実装しています。

「postgresサーバーの管理方法」に関連する問題を解決する必要があります。PostgreSQLデータベースは、同じサブネット(130.136.4.0)の端末からのみ到達可能な「golem」(130.136.4.sth)と呼ばれるラボサーバーで構成されます。ホストへのssh接続を確立できるため、4つのアカウント(私たち)があります。

SSHを介してJAVAのPostgresDBに向けてSQLクエリを実行することは可能ですか?

ありがとう:)ダビデ

4

3 に答える 3

4

これが開発のみの場合は、ローカルにインストールされているかのように、ssh ポート フォワーディングを使用してデータベースにアクセスできます。ポート転送を有効にする方法は、使用するクライアント ソフトウェアによって異なります。たとえば、openssh にはコマンド ライン スイッチ (-L) があります。

ssh user@host -L localport:remotehost:remoteport

このコマンドは、remoteportonremotehostを介してのみアクセスできますが、コンピュータで on をhost使用できるようにlocalportします。

于 2012-06-12T18:29:50.610 に答える
2

必要なことを達成しやすいように思われる他の提案された回答を見てください。

ただし、ラボの課題で Java を使用してコマンド送信を実装する必要がある場合は、http ://www.jcraft.com/jsch/ にある JSch (Java Secure Channel) ライブラリを参照してください。 http://www.jcraft.com/jsch/examples/

それを使用すると、ssh コマンドを送信し、Java API を介してあらゆる種類の操作を実行できます。

于 2012-06-12T18:39:48.450 に答える
1

「ssh」に続いて、そのコマンドがリモートホストで実行されるコマンドを実行すると。したがって、ssh を介してバッチ モードで事前に作成されたクエリを実行できるはずです。

パスワードなしの ssh 実行を有効にするために、キー生成とキー交換を行うことを検討してください。

例 (これはディレクトリのリストを端末にダンプするだけです):

ssh me@mybox ls
于 2012-06-12T18:26:29.280 に答える