(Debian 9)私のローカルコンピュータでpostgresqlサーバーが実行されるのはなぜですか?

(Debian 9)私のローカルコンピュータでpostgresqlサーバーが実行されるのはなぜですか?

興味を持ち始めました。https://www.postgresql.org/docs/9.6/runtime.htmlテストと開発のためにローカルpostgresqlサーバーを設定するために使用されます。私はすでにpostgresqlパッケージをインストールしており、postgresユーザーはすでに存在し、postgresqlサーバーはすでに127.0.0.1:5432

以前は、このコマンドを使用してリモートのpsqlpostgresqlデータベースに接続していましたが、ローカルのpostgresqlデータベースを設定した記憶がないため、これは奇妙です。

データベースに接続しようとしていますが、psql -h 127.0.0.1 -p 5432パスワードの入力を求められます。空のパスワードを入力すると無効です。私もpostgresユーザーになりましたが、su postgresパスワードを再入力するように求められました。

サーバーデータディレクトリの場所がわかりません。データベースクラスタの作成提案されていますが、/usr/local/pgsql/dataローカル/usr/local/pgsqlサーバーを設定しようとしたときに作成する前は存在しませんでした。

私の最後の質問は次のとおりです。

  • 私のローカルコンピュータでpostgresqlサーバーが実行されるのはなぜですか?

関連する質問は次のとおりです。

  • サーバーのデータディレクトリを見つける方法は? (ログが含まれていることを願っています。)
  • postgresユーザーがいつ作成されたかを確認する方法は?
  • データベースとユーザーのパスワードを回復する方法はpostgres
  • または、データベースパスワードを回復せずにデータベースの内容を表示できますか?

ベストアンサー1

apt-get install postgresqlある瞬間逃げたようですね。この場合、DebianのデフォルトのPostgreSQL設定があるかもしれません。これに関するいくつかの情報は次のとおりです。Debian Wiki で見つけることができます。いくつかはにあります/usr/share/doc/postgresql-common/README.Debian.gz

Debian 設定は、複数の「クラスタ」(PostgreSQL インスタンスの実行と複数の異なる PostgreSQL バージョン)をサポートします。コンピュータに何があるかを確認するには、次の手順を実行しますpg_lsclusters

$ pg_lsclusters 
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

認証のデフォルト設定(選択済み/etc/postgresql/«version»/«cluster-name»/pg_hba.conf- おそらく/etc/postgresql/9.6/main/pg_hba.conf)は、ローカルユーザーが "ident"を使用して認証することです。つまり、実行中のユーザーを確認し、パスワードプロンプトなしでUnixユーザー名で認証しますpsql。したがって、データベースに入るには、次の作業が必要です。

$ sudo -u postgres psql template1

ローカルUnixソケットの代わりにTCP接続を使用するように強制するため、コマンドは機能しません。 (この-pオプションは引き続き使用できますが、-p 5432デフォルト値なので省略しました。)基本認証はUnixソケットでのみ機能します。

PS:Debian PostgreSQLの設定はとても素晴らしいです。私は個人的にこのパッケージを使用しており、必ずしも必要でない限り(例えば、PostgreSQLの特定のバージョンを購入するために)削除し、アップストリームパッケージをインストールするよりも使い続けることをお勧めします。

おすすめ記事