問題は、ユーザーとして起動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