Shared memory fix for PostgreSQL Mac installation

EnterpriseDB have kindly created a one-click installer for PostgreSQL, but unfortunately it doesn’t work out-of-the-box, at least not on my MacBook Pro. The problem is down to the amount of shared memory that is configured in OS X; by default it is 4Mb, and PostgreSQL requires 32Mb:

Postgres installer error

The error message suggests looking at the README file, which actually doesn’t exist. Luckily, there’s a simple fix; to increase the shared memory to the required 32Mb, create or edit the /etc/sysctl.conf file and include the following lines:

kern.sysv.shmall=8192
kern.sysv.shmseg=64
kern.sysv.shmmni=256
kern.sysv.shmmin=1
kern.sysv.shmmax=33554432

Reboot your machine for the settings to take effect, and re-launch the PostgreSQL installer which should now work as normal.

Glen Scott

I’m a freelance software developer with 18 years’ professional experience in web development. I specialise in creating tailor-made, web-based systems that can help your business run like clockwork. I am the Managing Director of Yellow Square Development.

More Posts

Follow Me:
TwitterFacebookLinkedIn

3 thoughts on “Shared memory fix for PostgreSQL Mac installation

  1. Avin Tokade

    Thanks for the info.

    I am getting same above error. But I worried to edit in kernel file.

    Is this safe modify kernel parameter ?

    My MacBook has 4 gb Ram.

    Reply
    1. Glen Post author

      Hey Avin,

      I didn’t have any problems after making these edits, but it goes without saying: before editing make sure you make a backup copy of the configuration file.

      Reply
  2. Avin Tokade

    Hello Glen,

    Sorry, I forgot to inform you. I have successfully installed PostgreSQL on my Mac Book with above setting.

    who don’t want to restart after modifying sysctl.conf. Just run ‘sysctl -p’ to load new sysctl setting.

    Thanks again for the help.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.