creating template1 database in /usr/local/var/postgres/base/1 …
FATAL: could not create shared memory segment: Cannot allocate memory
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.
我已经在文档上戳了一下,但是我很新,对于内存和数据库的工作原理知之甚少,我认为这里的某个人可能能指出我的方向要好于我自己找到它任何想法如何解决这个问题?我的电脑是新的,相对喜欢,如果它的内存不足,我会感到惊讶,所以我不知道如果减少“共享内存使用”是正确的想法(如果我了解发生了什么) .
initdb /usr/local/var/postgres -E utf8
解决方法
由于大多数流行的Linux发行版都有一个数据库目录驻留在/ var / lib中.
经过Google搜索后,我发现:
Fixing the postgresql initdb fatal shared memory error on Leopard
希望有帮助
为了方便起见,我复制了上述链接中的指示.
运行以下命令:
sudo sysctl -w kern.sysv.shmall=65536 sudo sysctl -w kern.sysv.shmmax=16777216
或编辑/etc/sysctl.conf进行永久更改
kern.sysv.shmall=65536 kern.sysv.shmmax=16777216