在pgadmin中创建新的本地服务器?

72

我在windows上安装了PostgreSQL 11和PGadmin 4。目前我连接到托管所有数据的AWS服务器。

我想创建一个本地服务器(localhost)作为测试环境,以便进行实验。但我似乎无法做到,而其他类似的问题在 Stack 上也没有帮助。下面是我的流程:

  1. 在pgAdmin中,右键单击“Servers”,然后选择Create>Server

  2. 在“Create - Server”弹出框中,我输入名称:Localserver。对于“connection”,我输入localhost。端口我保留默认值“5432”,数据库:postgres,用户名:postgres密码:empty

  3. 点击保存。

然而,我收到了一个错误:

无法连接到服务器:

无法连接到服务器:连接被拒绝(0x0000274D/10061) 服务器是否正在主机“localhost”(::1)上运行并接受 端口5432上的TCP/IP连接?

无法连接到服务器:连接被拒绝(0x0000274D/10061) 服务器是否正在主机“localhost”(127.0.0.1)上运行并接受 端口5432上的TCP/IP连接?

错误消息的截图

我该怎么做?我是管理员,是否有区别?


为什么 @Grogu 的答案没有被接受? - doc
2
@doc 是因为 Grogu 谈到了从头开始设置 Postrges。我只是询问在安装 pgAdmin 后如何创建本地主机。 - Theo F
7个回答

94
作为一个新的Postgres用户,我不知道如何在Ubuntu上使用Postgres。因此,我想帮助其他新手,他们可能无法弄清楚如何在Linux上使用Postgres。如果您使用的是Windows,则步骤应该类似。
在使用PgAdmin之前,需要进行一些配置。大部分工作将在您的终端中完成。
如果您使用的是PC,请使用Ctrl + Alt + T打开终端。或者只需按ALT + F1并开始输入“终端”。

首先从基础知识开始,确保您有正确的安装。

1. 安装最新的Postgres

1.1 更新系统软件包

sudo apt update

1.2 从Ubuntu默认仓库中安装最新版的PostgreSQL

sudo apt install postgresql

安装程序将创建一个新的PostgreSQL数据库集合,由单个服务器实例进行管理。

默认数据目录:/var/lib/postgresql/your-version/main

配置文件:/etc/postgresql/your-version/main

2. 检查是否已安装Postgres服务

2.1 检查Postgres是否处于活动状态

sudo systemctl is-active postgresql

您应该看到:活动的

2.2 检查Postgres是否已启用

sudo systemctl is-enabled postgresql

你应该看到:已启用
2.3 检查Postgres服务状态
sudo systemctl status postgresql

你应该看到:绿色标记为活跃(已退出) 2.4 检查Postgres是否准备好接受连接
sudo pg_isready

您应该看到:/var/run/postgresql:5432 - 接受连接

3. 配置Postgres身份验证

3.1 以SUPERUSER身份打开pg_hba.conf文件

sudo code --user-data-dir=~/root /etc/postgresql/13/main/pg_hba.conf

我正在使用Visual Studio Code,所以对我来说代码是VSC代号。如果您使用vim或sublime,请将代码替换为您的文本编辑器名称。
3.2 配置pg_hba.conf
注:您不需要更改任何内容,只需确保您的配置文件与以下行匹配即可。
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

点击保存并关闭。

3.3 重启Postgres服务

sudo systemctl restart postgresql

4. 创建新服务器

对我来说,这就是所有困惑的源头。在使用PgAdmin之前,你需要在终端中创建一个服务器,然后你可以像使用PhpMyAdmin一样,在PgAdmin中连接和管理它。实际上,这更容易。

4.1 访问PostgreSQL数据库shell

sudo su - postgres
psql

您将会看到以下内容:postgres=# 4.2 创建新的服务器和用户
postgres=# create user bob with superuser password 'admin';

这是如何在Postgres中创建新用户和服务器的方法。接下来我们转到PgAdmin。

5. 安装pgAdmin4

5.1 添加仓库的公钥

curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add

注意:如果您的Ubuntu没有安装curl,系统会给出安装命令

5.2 创建存储库配置文件

sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'

5.3 安装pgAdmin4

sudo apt update
sudo apt install pgadmin4

运行与pgadmin4二进制包一起安装的Web设置脚本 5.4。
sudo /usr/pgadmin4/bin/setup-web.sh

它将要求您输入电子邮件地址和密码。这个电子邮件和密码是登录PgAdmin4 Web界面所需的。

6.访问pgAdmin4 Web界面

6.1 打开您最喜欢的浏览器

在地址栏输入PgAdmin web界面的地址。通常类似于:

http://127.0.0.1/pgadmin4

注意:安装完成后,Web设置脚本会告诉您如何访问Web界面。

当您看到登录屏幕时,请输入您在Web设置脚本期间选择的电子邮件和密码。

6.2 添加新的服务器连接

6.2.1 单击添加新的服务器

6.2.2 在常规选项卡下为您的服务器输入名称。任何名称都可以,不重要。您可以输入PgServer1或其他任何名称。不要更改其他内容。

6.2.3 切换到连接选项卡

Hostname/ Address : localhost
Port : 5432
Maintenance database : postgres (always)
Username :  **bob** (the username youve chosen at 4.2)
Password : admin (or any password you chose at 4.2)

点击保存按钮。

完成!您应该已经成功连接。如果没有,请打开终端并像4.2中所做的那样创建一个新用户。

备注:创建数据库非常容易,只需右键单击您的服务器名称即可。

create > databases

有用的资源与教程

PostgreSQL基础知识:查询等内容。

PostgreSQL和JSON:处理JS应用程序非常有用。

PostgreSQL和Nodejs:使用Nodejs和socket.io创建实时应用程序。

更多的PostgreSQL Nodejs

2023更新

在按照自己的教程操作时,当我尝试创建存储库文件时遇到证书问题,在第5步中。我收到的完整错误如此处链接所示

我想在这里发布适用于我的解决方案。


3
详尽而且信息量丰富。非常感谢。 - Abdellah Ramadan
1
谢谢,我在Ubuntu上配置它很困难。 - Eduardo Matsuoka
我按照上述步骤完成了所有操作(除了pgadmin的安装),但在创建服务器时出现错误:“连接到位于“localhost”(::1),端口5432的服务器失败:用户“bob”的标识验证失败” 我该如何解决这个问题? - Marseille
@Marseille:你说除了这件事情,其他都做了,然后你想知道为什么它不工作?那就试试所有的方法吧 :) - Grogu

13

这可能是两种情况之一:

  1. 您已经安装了Postgres服务器,但没有在postgresql.conf文件中调整 listen_addresses ,或者

  2. 您没有在本地计算机上设置Postgres服务器。 ("Create Server"有点误导,它应该是"创建服务器连接"。)


当然,很乐意帮忙。你使用的是哪个操作系统? - Chris Curvey
1
@Chirs Curvey 我最终卸载了pgadmin、postgresql,然后重新安装,但在此过程中创建了一个本地服务器。在此之后,我才连接到我的AWS数据库。 - Theo F
你可能想看一下 https://dba.stackexchange.com/questions/140258/create-pgadmin-database-on-local-machine - N M Almeida
@ChrisCurvey 你好!你能帮我解答一些有关创建新服务器连接的问题吗? - Programmer89
@Programmer89,你最好的选择就是直接提出你的问题。这里肯定会有人回答的。 - Chris Curvey
显示剩余2条评论

3
通常,“连接被拒绝”错误表示数据库服务器未运行或配置不正确,无法侦听正确的端口或IP地址。请务必检查 ps -ef 以查看是否正在运行Postgres,并查看postgresql.conf以查看portlisten_addresses 是否已正确设置。

1

为什么会出现连接未运行的服务器的问题?

解决方法:启动你的PostgreSQL服务器。

以下命令中的路径指的是安装PostgreSQL时配置的数据目录。在Windows cmd中运行此命令。

pg_ctl -D "C:\user\PostgreSQL\data" start

>server started

接下来,请打开pgAdmin,按照问题中的初始步骤进行操作。

  1. 创建服务器
  2. 在常规选项卡下:名称:mytestServer
  3. 在连接选项卡下:主机名:localhost,密码:yourPassword,其他设置保持默认即可
  4. 保存设置

1

确保Postgres服务正在运行。
Linux示例:systemctl enable postgresql.service


嗨Rakshit,如果Postgres服务正在运行,则OP所采取的步骤应该可以正常工作,无需其他操作? - WurmD

1
如果您还没有安装,请先在计算机上安装Postgres服务器。对于Windows系统,以下链接是当前可用的下载安装包:https://www.postgresql.org/download/windows/ 正如其他答案所指出的那样,PgAdmin只是使用Postgres服务器的接口。一旦在本地安装了服务器,在重新启动PgAdmin后,您将能够在左侧面板中看到该服务器。

0
如果有人在登录时遇到困难 - 这里有一个提示 - 实际上,postgres SQL 的默认用户名是您的用户名,数据库是postgres - 所以运行这个命令 psql -U <username> -d postgres 就可以解决问题了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接