gpt4 book ai didi

postgresql - 拉撒路 + Postgres : incomplete startup packet

转载 作者:行者123 更新时间:2023-11-29 13:31:25 27 4
gpt4 key购买 nike

我一直在后端使用 Postgresql 构建 Lazarus Pascal 程序。它过去可以很好地使用以下几行来打开数据库。

  dbConn:= TPQConnection.Create(nil);
dbConn.HostName := 'localhost';
dbConn.DatabaseName:= 'dbHRS';
dbconn.UserName:='mizk';
dbConn.Password:='123';
dbConn.Open;
if dbConn.Connected Then
OpenHRSDB := true
else
OpenHRSDB := False;

但是当我从 localhost 更改为服务器的 IP(在 LAN 上)时,程序就停止了。没有错误或警告。我不知道发生了什么。

以下是一些可能有助于缩小问题范围的相关详细信息。

  1. 我正在运行的程序来自与服务器位于同一 LAN 上的工作站。
  2. 两台机器都运行 Ubuntu 12.04 Desktop
  3. 我可以使用 PGAdmin III 访问服务器上的 postgres 数据库,所以我想这不是防火墙问题。
  4. 我已经允许来自 ufw 的 postgresql 并且 ufw 被禁用了。
  5. 奇怪的是,当防火墙被禁用时,我可以使用工作站从终端通过 SSH 访问服务器。但是当它启用时,我不能

我现在最担心的是为什么在给定 IP 号码时 Pascal 程序无法运行,以及 postgres 日志中的消息是什么。

非常感谢任何意见。谢谢!

编辑:这里有更多信息:

文件 postgresql.conf 包含这些行:

listen_addresses = '*'
port = 5430

很抱歉...这是打开连接日志记录后的正确日志。在我关闭、重新启动并运行我的程序后,日志文件包含以下内容:

2014-03-06 18:28:23 IST 日志:数据库系统于 2014-03-06 18:28:22 IST 关闭2014-03-06 18:28:23 IST 日志:收到连接:主机=[本地]2014-03-06 18:28:23 IST 日志:启动数据包不完整2014-03-06 18:28:23 IST 日志:数据库系统已准备好接受连接2014-03-06 18:28:23 IST 日志:autovacuum 启动器启动2014-03-06 18:28:24 IST 日志:收到连接:主机=[本地]2014-03-06 18:28:24 IST 日志:连接授权:用户=postgres 数据库=postgres2014-03-06 18:28:24 IST 日志:收到连接:主机=[本地]2014-03-06 18:28:24 IST 日志:连接授权:用户=postgres 数据库=postgres2014-03-06 18:28:25 IST 日志:收到连接:主机=[本地]2014-03-06 18:28:25 IST 日志:连接授权:用户=postgres 数据库=postgres2014-03-06 18:28:29 IST 日志:收到连接:主机=[本地]2014-03-06 18:28:29 IST 日志:启动包不完整

最佳答案

当我找到这个关于 PORT 的链接时,我意识到缺少了一些东西: http://lists.lazarus.freepascal.org/pipermail/lazarus/2009-August/044403.html

所以我在我的代码中加入了以下行来连接:dbConn.Params.Text := 'port=5430';

我不确定这是否是执行此连接字符串的最正确方法,因为我认为连接字符串中可能还使用了其他参数,并且上述方法可能会覆盖这些参数。出于这个原因,我把它放在第一行。

所以这个方法对我有用。

我还尝试了另一种方法,但它对我不起作用。那就是使用append方法(dbConn.Params.Append)

我还发现参数是区分大小写的,我不得不写“端口”(“端口”不起作用)。

关于postgresql - 拉撒路 + Postgres : incomplete startup packet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22222623/

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