
最近、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
psql
Postgresqlサーバーへの接続に使用したいコマンドが表示されませんでした。しかし、その情報がなくても何が起こっているのか説明できそうです。
コマンドにユーザーを指定しないと、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データベースに接続しようとしません。
これが誰かに役立つことを願っています。