我有一些 .sql 文件,其中包含数千个 INSERT 语句,需要在我的 PostgreSQL 数据库上运行这些插入,以便将它们添加到表中。这些文件太大以至于无法打开它们并将 INSERT 语句复制到编辑器窗口并在那里运行它们。我在 Internet 上发现,您可以通过导航到 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 安装的“数据”文件夹中找到。
您有四种选择来提供密码:
设置 PGPASSWORD 环境变量。有关详细信息,请参阅手册: http ://www.postgresql.org/docs/current/static/libpq- envars.html
使用 .pgpass 文件存储密码。有关详细信息,请参阅手册: http ://www.postgresql.org/docs/current/static/libpq- pgpass.html
对该特定用户使用“信任身份验证”:http ://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-TRUST