无管理员权限下PostgreSQL二进制版连接pgAdmin失败求助
无管理员权限下二进制PostgreSQL连接问题解决方案
1. 初始化数据库集群
你下载的二进制包未预先创建数据库集群,需手动完成:
- 在PostgreSQL解压目录下创建
data文件夹(选你有权限读写的路径,比如C:\Users\你的用户名\pgsql\data) - 打开命令提示符,切换到PostgreSQL的
bin目录:cd C:\Users\你的用户名\pgsql\bin - 执行初始化命令(替换
data路径为你自己的):
执行时会要求设置postgres用户的密码,务必记录。initdb -D C:\Users\你的用户名\pgsql\data -U postgres -E UTF8 --locale=chs
2. 手动启动PostgreSQL服务器
初始化完成后,启动服务器:
在bin目录下执行:
pg_ctl -D C:\Users\你的用户名\pgsql\data start
成功启动会显示server started提示。
3. 配置TCP连接(解决pgAdmin连接拒绝)
初始化后data目录会生成配置文件,需修改以允许TCP连接:
- 打开
data目录下的postgresql.conf,找到listen_addresses项,修改为:listen_addresses = 'localhost' - 打开同目录的
pg_hba.conf,在末尾添加两行:host all all 127.0.0.1/32 scram-sha-256 host all all ::1/128 scram-sha-256 - 重启服务器使配置生效:
pg_ctl -D C:\Users\你的用户名\pgsql\data restart
4. pgAdmin连接设置
打开pgAdmin添加新服务器:
- 名称:自定义(如
Local PostgreSQL) - 连接选项卡:
- 主机名/地址:
localhost - 端口:
5432 - 维护数据库:
postgres - 用户名:
postgres - 密码:初始化时设置的密码
- 主机名/地址:
日常使用说明
- 每次开机后需手动执行启动命令来开启服务器
- 停止服务器可执行:
pg_ctl -D C:\Users\你的用户名\pgsql\data stop
内容的提问来源于stack exchange,提问作者Islam Fahmy
相关产品推荐
相关产品推荐

