You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用psql时粘贴PostgreSQL用户密码无法连接的问题

解决psql粘贴密码认证失败的问题

可能的原因及解决办法

1. 粘贴的密码包含隐藏字符

复制密码时,可能不小心带了末尾换行符或前后空格,手动输入时会自动忽略这些冗余内容,但粘贴会原封不动传入,导致密码不匹配。

  • 验证方法:把密码粘贴到终端,用命令查看隐藏字符:
    echo "粘贴的密码" | cat -A
    
    如果看到末尾有$(换行符)或开头/结尾有空格,说明存在多余字符,重新复制纯密码内容即可。

2. 终端粘贴行为异常

Ubuntu默认终端(GNOME Terminal)的某些粘贴设置可能干扰密码输入:

  • 确保用Ctrl+Shift+V快捷键粘贴,而非右键菜单的“粘贴”(部分场景下右键粘贴会附带格式信息);
  • 关闭终端的“粘贴时保留格式”选项:打开终端设置 → 配置文件 → 编辑 → 文本 → 取消勾选“粘贴时保留格式”。

3. 绕过交互式输入(更高效的方式)

如果需要频繁连接,建议用以下两种方式避免手动/粘贴密码的麻烦:

方式一:环境变量临时传递

PGPASSWORD="你的密码" psql -U myuser -h myhost mydb

方式二:使用pgpass文件(安全持久)

  1. 在用户主目录创建.pgpass文件:
    nano ~/.pgpass
    
  2. 添加以下内容(替换为你的实际连接信息):
    myhost:5432:mydb:myuser:你的密码
    
  3. 设置文件权限(必须为600,否则PostgreSQL会忽略该文件):
    chmod 600 ~/.pgpass
    

之后再执行psql -U myuser -h myhost mydb就会自动读取密码,无需手动输入。

4. 切换终端测试

如果以上方法都无效,试试换个终端工具(比如xterm、Konsole),部分终端的输入处理逻辑可能和psql的密码交互逻辑不兼容。


内容的提问来源于stack exchange,提问作者Andrius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:52:48