Linux

Step 1: Installation

$ sudo apt update
$ sudo apt install postgresql postgresql-contrib

Step 2: Test the installation

sudo -u posgtres psql

You should see: psotgres=#

Type \q to quit

Step 3: Create postgres user:

$ sudo -u postgres createuser --interactive

You should see prompts as shown below:

Enter name of role to add: test
Shall the new role be a superuser? (y/n) y

Step 4: Create database

$ sudo -u postgres createdb test

Now, we need to create the same Linux user as the postgres user for authentication to succeed

$ sudo adduser test

now you can log in to your postgres database

$ sudo -u test psql

Step 5: Assign password to the postgres user

$ sudo -u postgres psql

postgres=# ALTER USER test with PASSWORD 'your-new-password';

Note: test is the name of your postgres user. If you want to connect to the postgres database programmatically you must create a password following step 5.

The connection string for the above database will be postgres://test:your-new-password@localhost:5432/test

Mac

For Mac, what would change is the method of installing postgres

If you already have Homebrew installed, you can install postgress with the command below, if you don't have Homebrew installed click here to install it.

$ brew update
$ brew install postgresql

Step 1: Create postgres user:

$ sudo -u postgres createuser --interactive

You should see prompts as shown below:

Enter name of role to add: test
Shall the new role be a superuser? (y/n) y

Step 2: Create database

$ sudo -u postgres createdb test
$ sudo -u test psql

Step 5: Assign password to the postgres user

$ sudo -u postgres psql

postgres=# ALTER USER test with PASSWORD 'your-new-password';

Note: Creating a new postgres user is optional, you can make do with the default postgres user if you are want.

If you want to use the default posgtres user, all you need to do after installing postgres is:

$ sudo -u postgres createdb test // or  $ createdb test

$ sudo -u postgres psql

postgres=# ALTER USER postgres with PASSWORD 'your-new-password';

Then, your connection string would be postgres://postgres:your-new-password@localhost:5432/test

Thanks for reading!