sql >> データベース >  >> RDS >> PostgreSQL

pgAdminとのリモートPostgreSQL接続

    まず、psql

    psql -h ip_address -d name_of_the_database -U username
    

    接続拒否エラーが発生した場合は、何か間違った設定をして、PostgreSQLへのリモート接続が機能していないかどうかを確認する必要がありますか?

    psql: could not connect to server: Connection refused Is the server running on host ip_address
    

    PostgreSQLへのリモート接続が機能しない場合はどうすればよいですか?

    1. pg_hba.confで認証構成を確認してください

      通常はLinuxにあります-/etc/postgresql/version/main/pg_hba.conf 。すべてのIPアドレスからの特定のIPのクライアントの認証を許可する必要があります:

      # Database administrative login by Unix domain socket
      local     all            postgres        peer
      
      # TYPE  DATABASE        USER            ADDRESS                 METHOD
      
      # "local" is for Unix domain socket connections only
      local     all            all             peer
      # IPv4 local connections:
      host     all             all             0.0.0.0/0               md5
      # IPv6 local connections:
      host     all             all             ::0/0                   md5
      #all ips
      host     all             all             all                     md5
      

      pg_hba.confの設定方法の詳細 ドキュメント にあります。 。

    2. 次に、特定のポートでリスニングを設定する必要があります。

      postgresql.confを見つける必要があります 。通常は/etc/postgresql/9.1/main/postgresql.confにあります )ファイルを作成し、listen_addressの行を次の場所から変更します:

      #listen_address = ''
      

      to(コメントを意味する#を削除することを忘れないでください):

      listen_address = '*'
      
    3. すべてのステップの後、Postgresqlサービスを再起動する必要があります:

      sudo service postgresql restart
      
    4. 手順2の後、netstatコマンドの後にリスニングアドレスにポート5432(または5433)が表示されます。

      netstat -ntlp
      
    5. その後、ファイアウォールでPostgreSQLのポートを開く必要があります:

      sudo ufw allow 5432
      

      ファイアウォールの設定は次のコマンドで確認できます(リストに5432が表示されます):

      sudo ufw status
      
    6. 前の手順のいずれかが機能しない場合は、PostgreSQLが別のポート(通常は5433)で実行されていないかどうかを確認し、前の手順を繰り返す必要があります。

      これは、実行中のバージョンのPostgreSQLが多い場合、またはデータベースをアップグレードして以前のバージョンのPostgreSQLを停止するのを忘れた場合によく発生します。

    構成ファイルを見つけるのに問題がある場合は、このスレッドを確認できます postgres * .confファイルはどこにありますか?



    1. Oracle INSERT INTO SELECT(...)DUP_VAL_ON_INDEX例外動作

    2. 範囲のあるMySQLLIKEが機能しない

    3. sqlite(android)でのアクセント付き検索

    4. さまざまなデータソースに対して読み取り/書き込みを行うようにHibernateを設定するにはどうすればよいですか?