gpt4 book ai didi

php - Google Cloud PostgreSQL 无法从服务器连接

转载 作者:行者123 更新时间:2023-12-04 10:57:57 30 4
gpt4 key购买 nike

我有一个 Google Cloud PostgreSQL 实例。在 GCP 的连接选项卡中将它们列入白名单后,我可以通过多个本地 IP 地址连接到它。我开发了我的应用程序,现在,当我尝试从生产网络服务器连接实例时,它说:

Fatal error: Uncaught PDOException: SQLSTATE[08006] [7] could not connect to server: Connection timed out Is the server running on host "34.65.215.xx" and accepting TCP/IP connections on port 5432?



我正在使用的 PHP 是:
$wpdb2 = new PDO('pgsql:host=34.65.215.xx;port=5432;dbname=xxxxx', 'postgres', 'xxxxxx');

我写信给我的网络服务器支持,他们通过在 34.65.215.xx IP 的输出中打开 5432 端口来回答我。之后我仍然无法连接到实例。
strace说:
0.000120 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
0.000043 setsockopt(4, SOL_TCP, TCP_NODELAY, [1], 4) = 0
0.000031 fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
0.000024 fcntl(4, F_SETFD, FD_CLOEXEC) = 0
0.000027 connect(4, {sa_family=AF_INET, sin_port=htons(5432), sin_addr=inet_addr("34.65.215.xx")}, 16) = -1 EINPROGRESS (Operation now in progress)
0.000112 poll([{fd=4, events=POLLOUT|POLLERR}], 1, 30000) = 1 ([{fd=4, revents=POLLOUT|POLLERR|POLLHUP}])
15.270417 getsockopt(4, SOL_SOCKET, SO_ERROR, [110], [4]) = 0
0.000103 close(4) = 0

我只是不知道下一步该怎么做...

有人可以帮助理解吗?

最佳答案

正如大家所建议的,您可以检查您的网络服务器的公共(public) IP 地址。要知道它,您可以使用@kurtisvg 提供的网页或从 linux 终端,您可以使用它:

$ curl ifconfig.co

此外,如果您的网络服务器操作系统是 Red Hat 或任何 fork(CentOS、Scientific Linux 等),您应该配置 SELinux boolean httpd_can_network_connect_db将其更改为 1将您的 PHP 应用程序连接到另一台服务器中的任何数据库。
$ sudo setsebool -P httpd_can_network_connect_db 1

现在一切都应该正常了,所以请尝试再次将您的 PHP 应用程序连接到您的 Cloud SQL 实例。

关于php - Google Cloud PostgreSQL 无法从服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59055736/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com