Postgres 不完整的启动包错误

and*_*sen 21 postgresql errors error-log

我正在尝试在 Ubuntu 14.04 上安装 Postgres 9.3,但在启动时遇到令人讨厌的错误。这是我所看到的:

$ sudo service postgresql restart
* Restarting PostgreSQL 9.3 database server
* Error: could not exec /usr/lib/postgresql/9.3/bin/pg_ctl /usr/lib/postgresql/9.3/bin/pg_ctl start -D /var/lib/postgresql/9.3/main -l /var/log/postgresql/postgresql-9.3-main.log -s -o  -c config_file="/etc/postgresql/9.3/main/postgresql.conf" : [fail]
Run Code Online (Sandbox Code Playgroud)

所以我用这个输出检查了日志文件:

 2015-01-05 21:50:05 EST LOG:  database system was shut down at 2015-01-05 21:50:03 EST
 2015-01-05 21:50:05 EST LOG:  database system is ready to accept connections
 2015-01-05 21:50:05 EST LOG:  autovacuum launcher started
 2015-01-05 21:50:06 EST LOG:  incomplete startup packet
 2015-01-05 21:51:22 EST ERROR:  syntax error at or near "exit" at character 1
 2015-01-05 21:51:22 EST STATEMENT:  exit;
Run Code Online (Sandbox Code Playgroud)

“不完整的启动数据包”似乎是罪魁祸首,但我无法找到有关可能发生的事情的信息,所以我想我会问。提前致谢。

Dan*_*ité 22

这个问题有3个不同的项目:

  • 服务器启动时出现不完整的启动包是无关紧要的,您可以忽略它。阅读需要的不完整的启动包帮助(在 pgsql-general 邮件列表中)了解更多信息。

  • 字符 1 处的“exit”处或附近的语法错误意味着客户端发出exit了一条 SQL 语句。

  • 不能EXEC发行时的错误service postgresql restart看起来像一个严重的安装问题,但它是由日志条目矛盾database system is ready to accept connections意味着服务器启动就好了。

  • “不完整的启动数据包”的可能原因之一是当 TCP 连接到 postgresql 端口 5432 时,并且立即关闭。当监控程序被配置为检查端口而不是运行 SQL 命令时,就会发生这种情况。 (9认同)