记录一下最近在 WinServer 2012 R2 安装 PostgreSQL 出现无法连接问题的解决方法

问题

在安装了 PostgreSQL 后在 pgAdmin 无法连接数据库,出现错误:

Unable to connect to server: connection to server at "127.0.0.1", port 5432 failed: Cannot assign requested address (0x00002741/10049) Is the server running on that host and accepting TCP/IP connections?

在网上搜索了一圈之后发现,引起这个原因的大部分是 PostgreSQL 的服务没有运行。先检查了一下服务,发现服务中根本没有 PostgreSQL,直接执行 D:\PostgreSQL\bin\pg_ctl register -D D:\PostgreSQL\data 注册服务后发现依然没办法启动服务。

然后去 D:\PostgreSQL\data 看了一眼,发现 data 目录是空的

想起在安装结束之前报了个错,当时没注意:

Problem running post-install step. Installation may not complete coreectly
 The database cluster initialisation failed.

解决

  1. 初始化 PostgreSQL:
    进入 bin 目录,执行 initdb.exe -D ..\data
  2. 注册 PostgreSQL 服务:
    bin 目录下执行 pg_ctl.exe register -N PostgreSQL -D ..\data
  3. 启动 PostgreSQL 服务:
    Win+R输入services.msc执行,找到 PostgreSQL 启动
  4. 创建 postgres 角色:
    bin 目录下执行 createuser.exe -s postgres

完美解决