- ベストアンサー
postgreSQL11の挙動
クライアント側で作成したデータベースがサーバ側では見えないのですが、そういうものですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> クライアント側からpsqlで相手のIPアドレスをホストにしてデータベースを作成しているので、 > サーバ側で見るときにローカルに入っているのかもしれません。・・この認識はあってますか? サーバ、クライアントと言う言葉が2つの意味で使われているのが混乱の原因かと思いますので、マシンはPC1とPC2、PostgreSQLはpsqlとサーバとと言い換えます。 PC1のpsqlでホストにPC2を指定して接続する(psql --host=PC2 --username=hoge)とPC2で稼働しているサーバにログインすると、PC2のサーバ内にあるデータベースが見られます。 PC2のpsqlでホストにPC2を指定して接続する(psql --host=PC2 [又はlocalhost] --username=hoge)と先程PC1で接続した時と同じデータベースが見られます。 ホスト名を間違えていたり、ユーザ名を間違えていると目的のデータベースが見られません。 ユーザ名を省略するとPCのログインIDが自動的に利用されるので、PC1とPC2でログインIDが異なっているとPostgreSQLに異なるユーザでログインしている事になるので、適切にアクセス権が設定されていないと同じデータベースを見ることができません。
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5253/13739)
クライアント側でサーバのPostgreSQLにログインしてデータベースを作成したのであれば、サーバ側でそのサーバのPostgreSQLにログインして見れば同じデータベースが見えます。 クライアント側でサーバへアクセスしているつもりがローカルで動いているPostgreSQLにログインしてデータベースを作成したらサーバ側では見えませんし、違うサーバにアクセスしていたと言った事も原因として考えられます。
お礼
ありがとうございます。 クライアント側からpsqlで相手のIPアドレスをホストにしてデータベースを作成しているので、 サーバ側で見るときにローカルに入っているのかもしれません。・・この認識はあってますか?
お礼
早速のコメントありがとうございます。 とても分かりやすいです。 なお、ユーザー名に問題があるかもしれません。確認します。
補足
PC2において、 psql -h localhost -U pgadmin -d sample と打つとsampleデータベースが開きます。存在しています。 しかし、PC2にて psql -h (PC2のIPアドレス) -p (PC2のポート) -U pgamin -d sample と打つと、「ロール"pgadmin"は存在しません」の表示です。 これはネット上の問題でしょうか? 相手先のpostgresQLのバージョン情報などが返ってくるのでアクセスしているような感じですが・・