問題は、ユーザーとして起動psql
し、SQLファイルを読み取るためpostgres
のユーザー権限を付与していないことです。postgres
許可を与える必要があります。最も簡単な方法は、世界の読み取り権限を付与することです。
chmod a+r create.sql
;を変更することで、ファイルに割り当てられているデフォルトのアクセス許可を変更できますumask
。詳細情報を検索してください。一部のプログラムは、とにかく煩わしく無視してumask
制限付きファイルのアクセス許可を設定するため、アクセス許可を付与する方法を常に知っておく必要があります。man chmod
およびを参照してくださいman chown
。
psql
ところで、ユーザーとして起動するために非常に複雑な方法を使用していpostgres
ます。これでうまくいきます:
sudo -u postgres psql template1
ファイルシステムのルートで/create.sql
指定されたファイルを指定することに注意してください( )。これがあなたの意図したことではないかと思います。create.sql
/
/
次のように、ホームディレクトリにある場合は、相対パス(先頭なし)として指定することをお勧めします。
template1=# \i create.sql
または、デスクトップ上にありpsql
、ホームディレクトリから開始した場合:
template1=# \i Desktop/create.sql