何千もの 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