【问题标题】:PostgreSQL & PHP connection problemPostgreSQL & PHP 连接问题
【发布时间】:2011-04-10 07:56:12
【问题描述】:

在 CountZero 的 this question 之后,显然我在这里遇到了同样的问题。 当我的网站尝试打开与数据库的连接时,SOMETIME(不是总是)我收到以下错误:

警告:pg_connect() [function.pg-connect]:无法 连接到 PostgreSQL 服务器:服务器 意外关闭连接 这可能意味着服务器 在之前或期间异常终止 处理请求。在 E:\htdocs\trial_pg\client_1a.php 上 第 3 行

这是我的 client1a.php 脚本:

<?php
  $connString = 'dbname=movies user=xxxxxx password=xxxxxx';
  $connHandler = pg_connect($connString);
  echo 'Connected to '.pg_dbname($connHandler);
?>

这种情况经常发生,尤其是当我反复刷新页面 (F5) 以测试连接时。我是 postgresql 新手,这是我网站的开发环境:

操作系统:Windows 7 专业版

Web 服务器: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5 .10.1

PHP: 5.3.1

PostgreSQL: 8.4.3

有什么我想念的配置吗? 有什么提示吗?

谢谢!

【问题讨论】:

  • +1 提出一个非常简洁的问题
  • 它正在寻找的脚本名称有一个“_”(下划线)。 client_1a.php
  • 会不会是 php 在脚本结束时没有立即关闭连接?我在您的代码中没有看到明确的pg_close()。查看 postgres 日志以了解任何可能的详细信息。
  • PHP 应该在脚本结束时自动运行 pg_close。您尝试打开连接多少次(每个脚本运行)?一次?两次?更多的?在postgresql.org/docs/8.4/static/runtime-config-connection.html 此处查找 max_connections 然后检查您的配置,如果您的默认值为 100,那应该足够了,并且听起来像是服务器本身的问题。如果您在每个脚本运行时打开 20 多个连接(而不是重复使用它们),那么这可能就是问题所在。
  • @AJ:嗯,应该是client_1a.php。感谢您的更正:)

标签: php postgresql


【解决方案1】:

好的,这就是我的问题的答案;)

只需重新启动 POSTGRESQL 服务 :)

我希望如果每个人都遇到同样的问题,你知道应该怎么做来解决它:D

【讨论】:

    【解决方案2】:

    如果杀毒软件监控 TCP 连接,有时这种问题是由过度热情的杀毒软件引起的。那里有运行防病毒软件吗?

    【讨论】:

    • 我不这么认为。我已经使用 Eset Smart Security 超过 2 年了,即使对于 Oracle,它也能正常工作。我认为问题在于 postgresql 本身 ;)
    猜你喜欢
    • 2021-11-18
    • 2011-07-28
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2016-12-03
    • 2021-09-14
    相关资源
    最近更新 更多