If you need to install PostgreSQL onto your Macbook, you have several options available to you nowadays. You could use the BigSQL package, or you could use Postgres.app, or several others. However, if you’re a geek running OSX, you’ve probably already installed Homebrew and it has a wonderful PostgreSQL package. So let’s use it, shall we?
I’m not going to walk you through installing Homebrew, so let’s just assume it’s already up and running and you’ve followed all the directions. At this point, you have
/usr/local/bin/ in your
brew is up and running. So, let’s tell
brew to install PostgreSQL:
$ brew install postgresql ==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.5.4_1.sierra.b Already downloaded: /Users/doug/Library/Caches/Homebrew/postgresql-9.5.4_1.sierra.bottle.tar.gz ==> Pouring postgresql-9.5.4_1.sierra.bottle.tar.gz ==> Using the sandbox ==> /usr/local/Cellar/postgresql/9.5.4_1/bigsqln/initdb /usr/local/var/postgres ==> Caveats If builds of PostgreSQL 9 are failing and you have version 8.x installed, you may need to remove the previous version first. See: https://github.com/Homebrew/homebrew/issues/2510 To migrate existing data from a previous major version (pre-9.0) of PostgreSQL, see: https://www.postgresql.org/docs/9.5/static/upgrading.html To migrate existing data from a previous minor versionn (9.0-9.4) of PostgreSQL, see: https://www.postgresql.org/docs/9.5/static/pgupgrade.html You will need your previous PostgreSQL installation from brew to perform `pg_upgrade`. Do not run `brew cleanup postgresql` until you have performed the migration. To have launchd start postgresql now and restart at login: brew services start postgresql Or, if you don't want/need a background service you can just run: pg_ctl -D /usr/local/var/postgres start ==> Summary 🍺 /usr/local/Cellar/postgresql/9.5.4_1: 3,147 files, 35M
As you can see, it downloaded the package, installed the binaries, and ran
initdb for us! As the output tells us, we can set PostgreSQL to auto-start when we login by issuing:
$ brew services start postgresql ==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
And if you check your process listing, you can see that the cluster is up and running under your id:
$ ps -efw|grep postgres 501 6808 1 0 11:03AM ?? 0:00.02 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres 501 6817 6808 0 11:03AM ?? 0:00.00 postgres: logger process 501 6819 6808 0 11:03AM ?? 0:00.00 postgres: checkpointer process 501 6820 6808 0 11:03AM ?? 0:00.00 postgres: writer process 501 6821 6808 0 11:03AM ?? 0:00.00 postgres: wal writer process 501 6822 6808 0 11:03AM ?? 0:00.00 postgres: autovacuum launcher process 501 6823 6808 0 11:03AM ?? 0:00.00 postgres: stats collector process
And just like that, you have PostgreSQL installed and running! Set
/usr/local/var/postgres and you’re all set.