端末からPostgresqlにアクセスする

端末からPostgresqlにアクセスする

最近、Raspberry PiにPostgresqlを設定した後、上級ユーザーではなくアカウントを作成しました。最初は設定するために次のように入力しました。

psql

端末で以下を実行します。

createuser pi -P --interactive

私は新しい役割を作成するためにデータベースYを作成するためにスーパーユーザーYに対してNを返します。

Create database test;

さて、単にpsqlを使用しようとすると

psql

わかりました。

pi@raspberrypi:~ $ psql psql: FATAL:  database "pi" does not exist

psqlテストに移動してそこにデータベースを作成できますが、この動作の原因が何であるかを知りたいです。

端末は自動的にPiユーザーの資格情報をpostgresqlに渡しますか、それともシステムのPiアカウントを使用してログインしますか?

答え1

psqlPostgresqlサーバーへの接続に使用したいコマンドが表示されませんでした。しかし、その情報がなくても何が起こっているのか説明できそうです。

コマンドにユーザーを指定しないと、psql現在ログインしているユーザー名を使用しようとします。データベースを指定しないと、ユーザーと同じ名前のデータベースをロードしようとします。

表示されるエラーは、database "pi" does not existデータベースをロードできないことを示しますpi。あなたが投稿した質問でユーザー名piとデータベースの作成について言及しましたtest。次のコマンドtestでロード・データベースを指定する必要があります。psql

psql --dbname=test

piユーザーとしてログインしていない場合は、psql次のコマンドにユーザー名を渡す必要があります。

psql --username=pi --dbname=test

この方法がすべて機能しない場合は、psql質問にコマンドを投稿してください。何が起こっているのかをよりよく知ることができます。

答え2

私はこの問題を次の方法で解決しました:sudo su postgres

SQL

データベースパイを作成します。

\キュー

出口

その後、piアカウントでpsqlを使用すると、piデータベースに保存されます。

それ以外の場合は、psqlを実行するときに接続するデータベースを指定する必要があります。 (単にpsqlを実行した場合は、データベースpi(Unixユーザー名)に接続しようとしていると思います。)

piアカウントからこのテストデータベースに接続するには、次の手順を実行します。

psql --db名前=テスト

これにより、psqlはpiデータベースに接続しようとしません。

これが誰かに役立つことを願っています。

関連情報