0

我之前使用 EnterpriseDB 安装程序在我的 Mac 上安装了 PostgreSQL 9.2。因此,我已修改.bash_profile为 read export PATH=/opt/local/lib/postgresql92/bin:$PATH,并且一切正常。

然后我的硬盘损坏了,不得不重新格式化我的电脑并重新安装 OSX。最初我必须重新安装 Snow Leopard(这是我拥有的恢复光盘的版本),然后重新升级到 Mountain Lion(我在崩溃之前正在运行)。然后,我使用带有迁移助手的 Time Machine 备份来恢复我的用户、应用程序和“其他文件”。

环顾四周,一切似乎又回到了坠机前的位置。然而,现在当我尝试做任何与 PostgreSQL 相关的事情时,我得到了错误:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

上网查了一下,发现这可能是因为我在进行系统还原时我的PostgreSQL服务器没有启动。官方文档说使用以下命令:

$ postgres -D /usr/local/pgsql/data

但我没有文件夹/usr/local/pgsqldata我能找到的唯一目录是/Library/PostgreSQL/9.2/data. 所以我改用postgresdosudo su postgrespostgres -D /Library/PostgreSQL/9.2/data再次尝试,结果如下:

2013-08-18 11:38:09 SGT FATAL:  could not create shared memory segment: Invalid argument
2013-08-18 11:38:09 SGT DETAIL:  Failed system call was shmget(key=5432001, size=32374784, 03600).
2013-08-18 11:38:09 SGT HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently 32374784 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
    If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
    The PostgreSQL documentation contains more information about shared memory configuration.

我从这里去哪里?这整件事有点奇怪。我不记得我最初安装 PostgreSQL 时曾经启动过服务器......

编辑:我也尝试initdb -D /Library/PostgreSQL/9.2/data过以防数据库集群丢失,但得到:

initdb: directory "/Library/PostgreSQL/9.2/data" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/Library/PostgreSQL/9.2/data" or run initdb
with an argument other than "/Library/PostgreSQL/9.2/data".

所以它应该仍然存在,与我系统上的大多数其他东西一起恢复,对吧?

4

1 回答 1

0

您的内核参数需要调整。这是内核资源的相关文档。根据您的系统规格(内存)配置它们,您应该会很好。

作为脚注,我想补充一点,从 Postgresql 9.3 开始,上述调整将不再是必要的。

于 2013-08-18T07:39:28.093 回答