我正在从 Win 迁移到 Mac,并通过 Homebrew 在 Mac X 10.8.3 上安装 PostgreSql 9.2.4
当我运行 initdb 命令时
initdb /usr/local/var/postgres -E utf8
我收到以下错误
DETAIL: Failed system call was shmget(key=1, size=2072576, 03600).
HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded
available memory or swap space, or exceeded your kernel's SHMALL parameter. You can either
reduce the request size or reconfigure the kernel with larger SHMALL. To reduce the request
size (currently 2072576 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing
shared_buffers or max_connections.
在研究中我发现了这个线程
在 MAC OS X 10.6 for PostgreSQL 上设置 SHMMAX 等值
并认为我会增加 shmall 并希望这会有所帮助,但我在下面的配置中得到与上面相同的错误。
我的 /etc/sysctl.conf 文件的内容是
kern.sysv.shmmax=33554432
kern.sysv.shmmin=1
kern.sysv.shmmni=256
kern.sysv.shmseg=64
kern.sysv.shmall=8192
假设 shmall 是 4096 块,我似乎有足够的内存用于 shmget,除非我的系统的其他部分正在使用它。活动监视器显示我还有超过 6GB 的可用内存。
也许我在这里缺少一些基本的东西。
谢谢你的帮助。
-S