2017-12-13 5 views
0

私はGoogleのクラウドにPostgreSQLをインストールしました。私は、好ましくはpg-adminを使用して自分のPCから遠隔からアクセスできます。Googleコンピューティングエンジンのpostgresサーバーに接続

私は私のインスタンスに接続しようとすると、私は次のエラーを取得するか:

サーバーに接続できません

は、サーバーに接続できませんでした:接続には、(0x0000274D/10061)は です拒否しましたホスト "[VMインスタンスの外部IP]"上で実行されているサーバと、ポート5432上のTCP/IP接続を受け入れる ?

Googleのクラウドファイアウォールは私をブロックしているので、私はこれができると思い、私は私のインスタンスに対して、次のファイアウォールを指定し、私はソースフィルタを定義するために、私のIPアドレスを使用します(多分!): enter image description here

私が行方不明です私はまだこれにアクセスすることができないので、誰かが私をもう助けてくれますか?私は多くのチュートリアルをチェックしています。誰もが考えている?

+0

あなたは何にpostgresのサーバをインストールしたのですか?クラウドSQL?計算インスタンス? Kubernetesクラスターで? –

+0

@DriesDeRydt私はこのチュートリアルに続き、私はここで言及されていることを正確に行った:https://cloud.google.com/community/tutorials/setting-up-postgres#creating-a-compute-engine-instance! –

+0

ホワイトリストの問題のように見えます。 pg_hba.confを更新してサービスを再起動してもよろしいですか? –

答えて

1

私は1のチュートリアルに従いました。私は1台のマシンから別のマシンに遠隔接続することができました。私は、ファイアウォールルールを設定することであなたのケースを再現することができました。ファイアウォールルールをタグで設定しました。そのタグはVM上にある必要があります。あなたがタグを持つファイアウォールルールを作成すると、そのタグは、上にある必要があります(私の場合には、タグのタグ名がpostgre-5432である)ネットワークタグ:

enter image description here

あなたはCompute Engineのインスタンスを編集することができますVMインスタンスセクションに表示されます。

この場合、タグは、特定のマシンの同じネットワーク内にファイアウォールルールを設定できるようにするために使用されます。

ここでは、入力トラフィックのファイアウォールルールの定義を示します。これは私のCompute Engineのインスタンスの実行中のPostgreSQLサーバは、ネットワークのタグ部に設定したタグである:Ipはあなたがから接続するコンピュータのパブリックIPアドレスを配置する必要がある範囲のソースで

enter image description here

これは入力ファイアウォールルールなので、postgresqlサーバを実行しているコンピュータに送信します。 そのIPをソースIPとして使用すると、タグの問題は発生しません。私はすべてがより安全になるので、タグを使用することをお勧めします。

あなたはこのアドレスでは、ローカル接続のPUBLIC IPを確認することができます。 http://ip4.me/

次にあなたがあなたの接続の公開IPを配置する必要が言及したコンフィギュレーションファイルに。このIPは、入力ファイアウォールルールで使用しているものと同じである必要があります。

sudoのナノ/etc/postgresql/9.5/main/pg_hba.conf: ホストすべてすべてPUBLIC_IP/32 MD5

そして、ここであなたは*は任意のアドレスを意味するのlisten_addressesのため*を設定する必要があります。とにかく、pg_hbaのインスタンスに接続できるipsを制御しています。conf:

sudo nano /etc/postgresql/9.5/main/postgresql.conf listen_addresses = '*'#どのIPアドレスを受信するか。

pgAdminで:

ここ

あなたはここでは、コマンドラインからのpostgresに接続する方法を見ることができますUbuntuの2 にpgAdmin4をインストールする方法を見ることができます。 [3

pgAdmin4からあなたのpostgresリモートインスタンスに接続できるようにするには、postgresqlサーバを実行しているCompute EngineインスタンスIpにホスト名/アドレスを設定する必要があります。ここでチュートリアルに従った場合、1には、デフォルトのデータベースpostgresも必要です。

enter image description here

は、この情報がお役に立てば幸い!

1https://cloud.google.com/community/tutorials/setting-up-postgres#creating-a-compute-engine-instance

2https://askubuntu.com/questions/831262/how-to-install-pgadmin-4-in-desktop-mode-on-ubuntu

3https://www.postgresql.org/message-id/001f01c018c2 $ 830133b0 $ 64898cd5%40northlink.gr


+0

ありがとう、私はすぐにそれを調べます。ありがとう、私はこれが私を助けることを願っています –

関連する問題