Windows下Scoop安装的PostgreSQL无法连接问题求助
解决Scoop安装PostgreSQL后角色不存在的连接问题
问题原因
Scoop安装PostgreSQL后不会自动初始化数据库集群,直接启动postgres.exe时使用的是未初始化或空的数据目录,导致没有默认的postgres角色或对应Windows用户名的角色,从而连接失败。
解决步骤
1. 停止当前运行的PostgreSQL进程
打开任务管理器结束postgres.exe进程,或执行命令:
taskkill /f /im postgres.exe
2. 初始化数据库集群
在PostgreSQL的bin目录下执行initdb命令,指定数据目录并创建默认超级用户:
C:\Users\my_user_name\scoop\apps\postgresql\current\bin\initdb.exe -D "C:\Users\my_user_name\scoop\apps\postgresql\current\data" -U postgres -W
-D:指定数据目录路径(如果data目录不存在会自动创建)-U:设置默认超级用户为postgres-W:会提示你设置该超级用户的密码
3. 启动PostgreSQL服务
启动时指定刚初始化的数据目录:
C:\Users\my_user_name\scoop\apps\postgresql\current\bin\postgres.exe -D "C:\Users\my_user_name\scoop\apps\postgresql\current\data"
等待日志输出database system is ready to accept connections即可。
4. 测试连接
使用创建的超级用户连接:
psql -U postgres
输入之前设置的密码,即可成功进入PostgreSQL命令行。
可选:创建Windows用户名对应的角色
如果需要用Windows用户名直接连接,进入psql后执行:
CREATE ROLE my_windows_username LOGIN;
之后就可以用psql -U my_windows_username直接连接。
内容的提问来源于stack exchange,提问作者belgoros
相关产品推荐
相关产品推荐

