0

私はpostgresを初めて使用し、サーバーの再起動後にDBに接続する際に問題に直面しています。OSユーザーテストでデータベースpgdbを作成しました。サーバーの再起動後、コマンドを発行してpgsqlを再起動しました

service postgresql-9.6 start

postgresql-9.6 サービスの開始: [ OK ]

psql を発行すると、psql プロンプトが表示されますが、ここのデータ パスは以前に設定したものとは異なります。postgres ユーザーとして pgdb に接続しようとすると、次のエラーが表示されます。

psql: FATAL: データベース "pgdb" が存在しません

テストユーザーとして接続しようとすると:

psql -d pgdb

psql: FATAL: ロール "test" が存在しません

提案してください

4

1 に答える 1

0

OS ユーザー テストで作成したデータベースは、によってインスタンス化されたインスタンスとは異なるservice postgresql-9.6 startPostgres インスタンスの下にあるようです。2 つのインスタンスは、異なるポート (5432 と 5433 など) で実行されている可能性があります (または、サーバーの再起動前に実行されていた可能性があります)。

または、これは postgres-9.4 と postgres-9.6 の両方としてタグ付けされているため、それらが互いに異なることに注意する必要があります。 Postgres 9.4 で作成したデータベースは、Postgres 9.6 では存在しないはずです。9.4 でデータベースを作成したpgdbが、再起動後に 9.6 の実行を開始した場合は、通常、データベースを移行する必要があります (その手順はこの質問の範囲外です)。同様に、9.4 で作成されたユーザーは、9.6 では自動的に存在しません。

于 2019-10-25T16:40:09.390 に答える