我正在将我的 pgAdmin 与 Google Cloud 的 VM 连接起来。
首先我创建虚拟机实例,然后我使用 pgAdmin 主机名创建虚拟机实例的公共 IP 地址,当我尝试保存时出现错误无法连接到服务器:超时已到期
答案1
查看社区教程如何在 Compute Engine 上设置 PostgreSQL:
本教程将介绍如何在几分钟内设置 Google Cloud Platform (GCP) 上的 PostgreSQL。按照本教程在 Compute Engine 上的 Ubuntu 虚拟机实例上配置 PostgreSQL。
如果你不想安装和管理自己的 PostgreSQL 数据库, 谷歌云 SQL提供托管的 PostgreSQL。
您还可以使用云启动器只需单击几下即可在 Compute Engine 上设置 PostgreSQL。
您应该遵循以下步骤:
- 创建虚拟机实例。
- 安装 PostgreSQL 并使用 PSQL 完成设置。
- 配置 PostgreSQL 远程访问:3.1. 编辑
pg_hba.conf
:- 导航ip4.me获取本地计算机的 IPv4 地址;
- 向下滚动到文件底部并添加以下行:
# IPv4 remote connections for the tutorial: host all all [YOUR_IPV4_ADDRESS]/32 md5
- 将 [YOUR_IPV4_ADDRESS] 替换为您本地计算机的地址;
- 保存文件并退出编辑器。3.2.编辑
postgresql.conf
: - 向下滚动到以 开头的行
#listen_addresses = 'localhost'
; - 删除
#
字符以取消注释该行; - 替换
localhost
为*
('*' 设置使 Postgres 能够监听所有 IP 地址); - 保存文件并退出编辑器;
- 重新启动数据库服务。
- 设置网络标签
postgresql-server
到您的虚拟机实例:gcloud compute instances add-tags instance-1 --zone=europe-west3-a -- tags=postgresql-server
- 创建新的防火墙规则允许传入连接:
gcloud compute firewall-rules create postgresql-server-rule-in --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:5432 --target-tags=postgresql-server
- 使用 pgAdmin 连接:
- 在主机字段中,输入您的虚拟机实例的外部 IP 地址;
- 在端口字段中输入 5432。
另外,您可以按照文档18.11. 使用 SSH 隧道建立安全的 TCP/IP 连接:
可以使用 SSH 加密客户端和 PostgreSQL 服务器之间的网络连接。如果操作正确,这将提供足够安全的网络连接,即使对于不支持 SSL 的客户端也是如此。