コマンドライン引数を使用してPostgreSQL .sqlファイルを実行する 質問する

コマンドライン引数を使用してPostgreSQL .sqlファイルを実行する 質問する

何千もの INSERT ステートメントを含む .sql ファイルがあり、それらをテーブルに追加するために PostgreSQL データベースでこれらの挿入を実行する必要があります。ファイルが大きいため、ファイルを開いて INSERT ステートメントをエディター ウィンドウにコピーし、そこで実行することは不可能です。インターネットで調べたところ、PostgreSQL インストールの bin フォルダーに移動すると、次の操作を実行できることがわかりました。

psql -d myDataBase -a -f myInsertFile

私の場合:

psql -d HIGHWAYS -a -f CLUSTER_1000M.sql

次に、ユーザーのパスワードの入力を求められますが、何も入力できず、Enter キーを押すと次のエラーが表示されます。

psql: 致命的: ユーザー「myUsername」のパスワード認証に失敗しました

なぜパスワードを入力できないのでしょうか。これらのスクリプトを実行できることは重要なので、これを回避する方法はありますか?

私は、次の構造を持つ新しいエントリを pg_hba.conf ファイルに追加することでこの問題を回避しました。

# IPv6 local connections:
host    myDbName    myUserName ::1/128    trust

pg_hba.conf ファイルは通常、PostgreSQL インストールの「data」フォルダにあります。

ベストアンサー1

もちろん、ユーザー名が含まれていないため、認証時に致命的なエラーが発生します...

これを試してみてください。私にとっては大丈夫です :)

psql -U username -d myDataBase -a -f myInsertFile

データベースがリモートの場合は、ホストと同じコマンドを使用します。

psql -h host -U username -d myDataBase -a -f myInsertFile

おすすめ記事