本地服务器无法使用PHP连接到远程Postgresql数据库,但是本地终端可以连接

莫灿

标题可能使它看起来像是SO上一些现有问题的重复,但我认为这不是某种方式。

81408633061735727749691

但是我无法终生使这些线程的答案起作用,我不想在这些线程上提问,而是想创建自己的问题,我想先讨论一下我的设置,然后再讨论我的问题,然后我尝试过的

我的服务器设置是这样的,我有一个地方(实际的物理机)和VPS我租房子住,无论是在Centos7.x,PostgreSQL10,PHP 7.x和Python的2.X正在运行,BOTH可以ping和通过VPN互相ssh很好。

两者都可以通过PHP,Python,PSQL终端连接到各自的数据库

在我的VPS服务器上,可以完全使用Python(psycopg2),PHP(php-pgsql)和Terminal(psql)连接到本地服务器的PostgreSQL数据库。

在我的本地服务器上,我可以使用Python(psycopg2)和Terminal(psql)EXCEPT通过PHP(php-pgsql)连接到我的VPS PostgreSQL

每当我通过PHP连接到VPS的PostgreSQL时,都会像其他所有人一样收到此错误

pg_connect(): Unable to connect to PostgreSQL server: 
could not connect to server: Permission denied 
Is the server running on host "123.456.0.789" and accepting TCP/IP connections on port 5432?

这是我所做的。

  1. 在postgresql.conf上设置listen_address =“ *”-可以
  2. 两者都添加了pg_hba条目-可以(python和终端可以在两者上连接)
  3. 端口5432 / tcp既启用又允许-这没关系
  4. Selinux被禁用-这是上面引用的线程的答案,但是即使重启后它也对我不起作用。

这些是我的netstat的结果

#netstat -na | grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN
tcp6       0     94 ::1:55110               ::1:5432                ESTABLISHED
tcp6       0      0 ::1:5432                ::1:55060               ESTABLISHED
tcp6       0      0 ::1:5432                ::1:55110               ESTABLISHED
tcp6      12      0 ::1:5432                ::1:55108               ESTABLISHED
tcp6       0     12 ::1:55108               ::1:5432                ESTABLISHED
tcp6       0      0 ::1:55060               ::1:5432                ESTABLISHED
unix  2      [ ACC ]     STREAM     LISTENING     31102    /var/run/postgresql/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     31104    /tmp/.s.PGSQL.5432

iptables

#iptables-save | grep 5432
-A IN_public_allow -p tcp -m tcp --dport 5432 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT

增强力量

#getenforce    
Disabled

Selinux

#/usr/sbin/sestatus | grep SELinux
SELinux status:                 disabled
#sudo setsebool -P httpd_can_network_connect_db 1
setsebool:  SELinux is disabled.

postgresql.conf

listen_addresses = '*'                           
port = 5432   

pg_hba.conf(我只是更改了要在此处发布的ip)我尝试使用trust,但是它仍然相同

# "local" is for Unix domain socket connections only
local   all             all                                     password
# IPv4 local connections:
host    all             all             127.0.0.1/32            password
host    all             all             123.456.0.1/32            password
host    all             all             123.456.0.11/32           password
host    all             all             123.456.0.20/32           password
# IPv6 local connections:
host    all             all             ::1/128                 password

编辑开始:我的PHP pg_connect代码(我只是为此帖子更改了IP,但它指向了VPS IP)

$pgcon = pg_connect("dbname=database1 user=some_user password=some_password host=123.456.0.789");

编辑结束:==

我想强调一下,这两个服务器都可以通过其他方式相互连接,并可以通过自己的PostgreSQL数据库进行连接,除了我的本地服务器外,它无法使用PHP连接到VPS PostgreSQL。

VPS到自身(本地主机连接)

VPS to Self via PHP is OK
VPS to Self via Python is OK
VPS to Self via PSQL(Terminal) is OK

VPS到本地服务器(使用本地服务器的VPN IP连接)

VPS to Local Server via PHP is OK
VPS to Local Server via Python is OK
VPS to Local Server via PSQL(Terminal) is OK

本地服务器到自己(本地主机连接)

Local Server to Self via PHP is OK
Local Server to Self via Python is OK
Local Server to Self via PSQL(Terminal) is OK

本地服务器到VPS(通过VPN和公共IP使用VPS的IP连接)

Local Server to VPS via Python is OK
Local Server to VPS via PSQL(Terminal) is OK
Local Server to VPS via PHP Is NOT OK

对于长线程,我感到非常抱歉,我想提供尽可能多的信息。

a13xg0

让我们按类型划分错误。我对您的案件和发现的内容进行了几次测试:

  1. 如果我们弄乱了连接参数(例如,错误的端口或IP地址),则会收到错误消息“无法连接到服务器:连接被拒绝”或“操作超时服务器正在主机“ 128.0.0.1”上运行并接受”)

  2. 如果我们弄乱了凭据,则会收到错误消息“致命:用户密码验证失败...”。

  3. 仅当您没有从PHP库打开TCP连接的权限时,才可以抛出拒绝权限。

请再次检查是否像我一样在本地服务器上禁用了SElinux,这仍然是解决问题的最接近的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将本地机器上的 SSIS 连接到远程服务器 oracle 数据库

来自分类Dev

SQL Server 2014-无法连接到本地数据库-找不到服务器

来自分类Dev

无法连接Mlab数据库,但是我可以使用mgo golang连接到我的本地mongo

来自分类Dev

如何将本地数据库服务器连接到SQL Azure数据库服务器

来自分类Dev

连接到远程mysql数据库服务器

来自分类Dev

无法连接到本地数据库

来自分类Dev

mongodump错误连接到本地主机中的数据库服务器

来自分类Dev

连接到本地数据库服务器时出错

来自分类Dev

使用数据库连接将代码部署到Azure Web时,Flask应用程序无法呈现,但是在本地服务器上运行良好

来自分类Dev

如何使用API将Flutter应用程序连接到本地sql服务器数据库?

来自分类Dev

连接数据库服务器失败。如何使用Powershell和集成的安全性连接到不在本地主机上的数据库?

来自分类Dev

从终端查询MongoDB数据库:[MongoError]:无法连接到服务器

来自分类Dev

PC上的本地apache服务器-PHP无法连接到其他远程服务器

来自分类Dev

无法连接到SQL数据库服务器

来自分类Dev

无法使用基于python的库ftplib连接到本地FTP服务器

来自分类Dev

无法使用Sequelize从本地节点应用程序连接到Heroku Postgresql数据库

来自分类Dev

自定义验证连接到在本地主机上运行但不在远程服务器上运行的数据库

来自分类Dev

使用 postgresql-fdw 从 postgresql 服务器连接到 Hive 数据库表

来自分类Dev

Curl可以连接到本地主机上的Iron服务器,但是Scala间歇性地无法

来自分类Dev

Elastic Beanstalk 应用程序无法连接到数据库,但服务器可以

来自分类Dev

PHP无法使用TCP连接到本地MariaDB服务器

来自分类Dev

从在线服务器更改为本地服务器时,数据库连接(wordpress)

来自分类Dev

无法在docker-compose(php和MariaDB)中连接到数据库服务器

来自分类Dev

从Postgresql9.1中的数据库功能连接远程服务器数据库

来自分类Dev

无法从本地机器连接到 mysql 到远程服务器 10060

来自分类Dev

无法使用服务器名/实例名连接到本地服务器

来自分类Dev

无法连接到服务器(WAMP,phpmyadmin),将 VS 连接到数据库?

来自分类Dev

无法使用Hostinger中提供的设置连接到数据库服务器

来自分类Dev

PHP尝试连接到本地mysql数据库而不是指定的远程地址

Related 相关文章

  1. 1

    将本地机器上的 SSIS 连接到远程服务器 oracle 数据库

  2. 2

    SQL Server 2014-无法连接到本地数据库-找不到服务器

  3. 3

    无法连接Mlab数据库,但是我可以使用mgo golang连接到我的本地mongo

  4. 4

    如何将本地数据库服务器连接到SQL Azure数据库服务器

  5. 5

    连接到远程mysql数据库服务器

  6. 6

    无法连接到本地数据库

  7. 7

    mongodump错误连接到本地主机中的数据库服务器

  8. 8

    连接到本地数据库服务器时出错

  9. 9

    使用数据库连接将代码部署到Azure Web时,Flask应用程序无法呈现,但是在本地服务器上运行良好

  10. 10

    如何使用API将Flutter应用程序连接到本地sql服务器数据库?

  11. 11

    连接数据库服务器失败。如何使用Powershell和集成的安全性连接到不在本地主机上的数据库?

  12. 12

    从终端查询MongoDB数据库:[MongoError]:无法连接到服务器

  13. 13

    PC上的本地apache服务器-PHP无法连接到其他远程服务器

  14. 14

    无法连接到SQL数据库服务器

  15. 15

    无法使用基于python的库ftplib连接到本地FTP服务器

  16. 16

    无法使用Sequelize从本地节点应用程序连接到Heroku Postgresql数据库

  17. 17

    自定义验证连接到在本地主机上运行但不在远程服务器上运行的数据库

  18. 18

    使用 postgresql-fdw 从 postgresql 服务器连接到 Hive 数据库表

  19. 19

    Curl可以连接到本地主机上的Iron服务器,但是Scala间歇性地无法

  20. 20

    Elastic Beanstalk 应用程序无法连接到数据库,但服务器可以

  21. 21

    PHP无法使用TCP连接到本地MariaDB服务器

  22. 22

    从在线服务器更改为本地服务器时,数据库连接(wordpress)

  23. 23

    无法在docker-compose(php和MariaDB)中连接到数据库服务器

  24. 24

    从Postgresql9.1中的数据库功能连接远程服务器数据库

  25. 25

    无法从本地机器连接到 mysql 到远程服务器 10060

  26. 26

    无法使用服务器名/实例名连接到本地服务器

  27. 27

    无法连接到服务器(WAMP,phpmyadmin),将 VS 连接到数据库?

  28. 28

    无法使用Hostinger中提供的设置连接到数据库服务器

  29. 29

    PHP尝试连接到本地mysql数据库而不是指定的远程地址

热门标签

归档