Windows下命令行运行PostgreSQL及解决Eclipse连接密码认证失败问题
解决PostgreSQL密码认证失败&Windows命令行操作指南
先帮你搞定密码认证的问题,再手把手教你用命令行操作PostgreSQL,一步步来:
一、解决"FATAL: password authentication failed for user 'testuser'"错误
1. 先确认PostgreSQL服务是否在运行
按下Win + R,输入services.msc回车,找到PostgreSQL 10服务,确保它处于「正在运行」状态。如果没启动,右键选择「启动」即可。
2. 用默认超级用户测试连接
PostgreSQL安装后会自动创建postgres超级用户,先试试用这个用户连接DBeaver:
- 新建连接时,用户名填
postgres,密码填你安装PostgreSQL时设置的超级用户密码。如果能成功连接,说明问题出在testuser这个用户身上。
3. 重置testuser的密码
如果是testuser密码记错了,用命令行重置最靠谱:
- 打开命令提示符(CMD),进入PostgreSQL的bin目录,比如:
cd "C:\Program Files\PostgreSQL\10\bin" - 连接到postgres数据库:
输入psql -U postgrespostgres用户的密码回车。 - 执行重置密码命令:
把ALTER USER testuser WITH PASSWORD '你的新密码';你的新密码换成你要设置的密码,执行完输入\q退出即可。
4. 检查pg_hba.conf认证配置
如果重置密码后还是失败,可能是认证策略的问题:
- 找到PostgreSQL安装目录下的
data文件夹(比如C:\Program Files\PostgreSQL\10\data),用记事本或Notepad++打开pg_hba.conf文件。 - 找到IPv4本地连接的配置行:
把# IPv4 local connections: host all all 127.0.0.1/32 identident改成md5(PostgreSQL 10支持这个认证方式),修改后变成:host all all 127.0.0.1/32 md5 - 保存文件后,回到服务管理器,重启PostgreSQL 10服务,再尝试连接。
二、Windows系统下用命令行操作PostgreSQL
1. 快速打开PostgreSQL命令行
- 方法一:直接从开始菜单找PostgreSQL 10 -> SQL Shell (psql),打开后按提示输入(数据库名留空默认连postgres,用户名留空默认postgres)。
- 方法二:配置环境变量(推荐长期使用):
- 右键「此电脑」->「属性」->「高级系统设置」->「环境变量」。
- 在系统变量的「Path」里添加PostgreSQL的bin路径(比如
C:\Program Files\PostgreSQL\10\bin)。 - 重启CMD,直接输入
psql就能快速连接。
2. 常用命令
- 连接指定用户和数据库:
psql -U testuser -d your_dbname - 查看所有可用数据库:
\l - 切换到某个数据库:
\c your_dbname - 查看当前数据库的所有表:
\dt - 退出psql:
\q
如果还有问题,可以补充下testuser是怎么创建的,或者连接时的具体配置,我再帮你排查~
内容的提问来源于stack exchange,提问作者Nandan Chaturvedi
相关产品推荐
相关产品推荐

