📜  sql shell psql 无法输入密码 - SQL (1)

📅  最后修改于: 2023-12-03 15:35:05.301000             🧑  作者: Mango

SQL Shell psql 无法输入密码

当使用 psql 命令进入 PostgreSQL 数据库控制台时,有时候会遇到无法输入密码的情况。这通常是因为 psql 命令默认会尝试从操作系统环境变量或.pgpass文件中获取密码,而不是直接在命令行输入密码。

有两种方法可以解决这个问题:

方法一:使用 -W 参数

在运行 psql 命令时,可以加上 -W 参数,强制让程序要求输入密码。例如:

psql -U postgres -W

执行后,程序将会提示输入密码,并在输入时隐藏输入字符。

方法二:修改配置文件

编辑 PostgreSQL 的客户端配置文件 pg_hba.conf,将认证方式设置为 md5,可以要求 psql 命令在登录时要求输入密码。具体步骤如下:

  1. 找到并编辑 pg_hba.conf 文件,该文件通常位于 postgresql/data 目录下。

  2. 找到类似以下的文本行:

    # "local" is for Unix domain socket connections only
    local   all             all                                     peer
    

    其中 peer 认证方式表示使用操作系统的账号密码进行认证,改为 md5 认证方式:

    local   all             all                                     md5
    
  3. 保存并退出 pg_hba.conf 文件,并重新启动 PostgreSQL 服务。

  4. 再次运行 psql 命令时,程序将会要求输入密码。

请注意:修改 pg_hba.conf 文件可能会影响到 PostgreSQL 的安全性,请慎重操作。

这两种方法都可以让 psql 命令要求输入密码,在需要时输入即可。