Wow, it had been a long time since I last started Postgres on my Mac computer (a MacBook Pro, to be specific), and it took almost almost 20 minutes to remember how to do it. So, to keep that from happening again, here's a quick tip on how to start Postgres (Postgresql) on a Mac OS X computer.
Step 1: Log in as the postgres user
A long time ago I followed this Apple tutorial on how to install Postgress on a Mac. After I finished that installation, a "postgres" user account was created on my Mac during the installation process.
So, Step 1 of starting Postgres is to open a Terminal window, and switch over to that user account, like this:
su - postgres
After issuing this command, you'll also need to provide the password for the "postgres" user.
Step 2: Issue the startup command
Once you're logged in as the postgres user, you just need to make sure your path includes the Postgres bin
directory, and then issue the command to start Postgres. Here's how I include the Postgres bin
directory in my path:
export PATH=$PATH:/usr/local/pgsql/bin
And here's the command I use to start the Postgres server:
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
(As you can see from these commands, the root directory of the Postgres server on my Mac computer is /usr/local/pgsql
.)
Bonus: How to create and connect to a Postgresql database
As a quick bonus (and a reminder to myself), here's how you create and then use a Postgres database. First, the command to create a new Postgres database named test
:
createdb test
Next, you can connect to this new test
database with the following command:
psql test
Note that I'm doing all this without specifying the database user I want to connect as. Postgres is smart enough to see that I'm logged in as the postgres
user, and it lets me right in. To demonstrate this, if I switch over to a different Terminal and try to log in from my normal "al" user account, I get the following error message:
prompt> psql test psql: FATAL: role "al" does not exist