ruby-on-rails – PostgreSQL安装错误 – 无法分配内存

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – PostgreSQL安装错误 – 无法分配内存前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从sqlite3切换到Postgresql,以便在Rails中进行开发,这样我就没有任何heroku问题.我正在遵循关于heroku和一个链接到Railscast的建议,但是在安装postgresql之后遇到了以下错误.

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

解决方法

数据库路径,我猜你使用的是Mac OS X

由于大多数流行的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

猜你在找的Ruby相关文章