小编典典

使用命令行参数运行 PostgreSQL .sql 文件

all

我有一些 .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 安装的“数据”文件夹中找到。


阅读 148

收藏
2022-03-04

共1个答案

小编典典

您有四种选择来提供密码:

  1. 设置 PGPASSWORD 环境变量。有关详细信息,请参阅手册:
    http ://www.postgresql.org/docs/current/static/libpq-
    envars.html

  2. 使用 .pgpass 文件存储密码。有关详细信息,请参阅手册:
    http ://www.postgresql.org/docs/current/static/libpq-
    pgpass.html

  3. 对该特定用户使用“信任身份验证”:http ://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-TRUST

  4. 从 PostgreSQL 9.1 开始,您还可以使用连接字符串
    https ://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-
    CONNSTRING
2022-03-04