Remarks
This section provides an overview of what postgresql is, and why a developer might want to use it.
Brew postgresql-upgrade-database This formula has created a default database cluster with: initdb -locale=C -E UTF-8 $(brew -prefix)/var/postgres. Sep 30, 2019 Homebrew is a package manager for Mac OS X that builds software from its source code. It includes a version of PostgreSQL packaged by what it refers to as a formula. This type of installation might be preferred by people who are comfortable using the command line to install programs, such as software developers. Typical use looks like.
It should also mention any large subjects within postgresql, and link out to the related topics. Since the Documentation for postgresql is new, you may need to create initial versions of those related topics.
Versions
Version | Release date | EOL date |
---|---|---|
9.6 | 2016-09-29 | 2021-09-01 |
9.5 | 2016-01-07 | 2021-01-01 |
9.4 | 2014-12-18 | 2019-12-01 |
9.3 | 2013-09-09 | 2018-09-01 |
9.2 | 2012-09-10 | 2017-09-01 |
9.1 | 2011-09-12 | 2016-09-01 |
9.0 | 2010-09-20 | 2015-09-01 |
8.4 | 2009-07-01 | 2014-07-01 |
How to install PostgreSQL via MacPorts on OSX
In order to install PostgreSQL on OSX, you need to know which versions are currently supported.
Use this command to see what versions you have available.
You should get a list that looks something like the following:
In this example, the most recent version of PostgreSQL that is supported in 9.6, so we will install that.
You will see an installation log like this:
The log provides instructions on the rest of the steps for installation, so we do that next.
Now we start the server:
Verify that we can connect to the server:
You will see a prompt from postgres:
Here you can type a query to see that the server is running.
And see the response:
Type q to quit:
And you will be back at your shell prompt.
Congratulations! You now have a running PostgreSQL instance on OS/X.
Install PostgreSQL from Source on Linux
Dependencies:
- GNU Make Version > 3.80
- an ISO/ ANSI C-Compiler (e.g. gcc)
- an extractor like tar or gzip
- zlib-devel
- readline-devel oder libedit-devel
Sources: Link to the latest source (9.6.3)
Now you can extract the source files:
There are a large number of different options for the configuration of PostgreSQL:
Small list of available options:
--prefix=PATH
path for all files--exec-prefix=PATH
path for architectur-dependet file--bindir=PATH
path for executable programs--sysconfdir=PATH
path for configuration files--with-pgport=NUMBER
specify a port for your server--with-perl
add perl support--with-python
add python support--with-openssl
add openssl support--with-ldap
add ldap support--with-blocksize=BLOCKSIZE
set pagesize in KBBLOCKSIZE
must a power of 2 and between 1 and 32
--with-wal-segsize=SEGSIZE
set size of WAL-Segment size in MBSEGSIZE
must be a power of 2 between 1 and 64
Go into the new created folder and run the cofigure script with the desired options:
Run make
to create the objectfiles
Run make install
to install PostgreSQL from the built files
Run make clean
to tidy up
For the extension switch the directory cd contrib
, run make
and make install
Install postgresql with brew on Mac
Homebrew calls itself 'the missing package manager for macOS'. It can be used to build and install applications and libraries. Once installed, you can use the brew
command to install PostgreSQL and it's dependencies as follows:
Homebrew generally installs the latest stable version. If you need a different one then brew search postgresql
will list the versions available. If you need PostgreSQL built with particular options then brew info postgresql
will list which options are supported. If you require an unsupported build option, you may have to do the build yourself, but can still use Homebrew to install the common dependencies.
Start the server:
Open the PostgreSQL prompt
If psql complains that there's no corresponding database for your user, run createdb
.
Installation on GNU+Linux
On most GNU+Linux operating systems, PostgreSQL can easily be installed using the operating system package manager.
Red Hat family
Respositories can be found here: https://yum.postgresql.org/repopackages.php
Download the repository to local machine with the command
View available packages:
Neccesary packages are: postgresqlXX postgresqlXX-server postgresqlXX-libs postgresqlXX-contrib
These are installed with the following command: yum -y install postgresqlXX postgresqlXX-server postgresqlXX-libs postgresqlXX-contrib
Once installed you will need to start the database service as the service owner (Default is postgres). This is done with the pg_ctl command.
To access the DB in CLI enter psql
Debian family

On Debian and derived operating systems, type:
This will install the PostgreSQL server package, at the default version offered by the operating system's package repositories.
If the version that's installed by default is not the one that you want, you can use the package manager to search for specific versions which may simultaneously be offered.

You can also use the Yum repository provided by the PostgreSQL project (known as PGDG) to get a different version. This may allow versions not yet offered by operating system package repositories.
Installing PostgreSQL on Windows
While it's good practice to use a Unix based operating system (ex. Linux or BSD) as a production server you can easily install PostgreSQL on Windows (hopefully only as a development server).
Download the Windows installation binaries from EnterpriseDB: http://www.enterprisedb.com/products-services-training/pgdownload This is a third-party company started by core contributors to the PostgreSQL project who have optimized the binaries for Windows.
Select the latest stable (non-Beta) version (9.5.3 at the time of writing). You will most likely want the Win x86-64 package, but if you are running a 32 bit version of Windows, which is common on older computers, select Win x86-32 instead.
Note: Switching between Beta and Stable versions will involve complex tasks like dump and restore. Upgrading within beta or stable version only needs a service restart.
You can check if your version of Windows is 32 or 64 bit by going to Control Panel -> System and Security -> System -> System type, which will say '##-bit Operating System'. This is the path for Windows 7, it may be slightly different on other versions of Windows.
Brew Install Postgresql 9.6
In the installer select the packages you would like to use. For example:
- pgAdmin ( https://www.pgadmin.org ) is a free GUI for managing your database and I highly recommend it. In 9.6 this will be installed by default .
- PostGIS ( http://postgis.net ) provides geospatial analysis features on GPS coordinates, distances etc. very popular among GIS developers.
- The Language Package provides required libraries for officially supported procedural language PL/Python, PL/Perl and PL/Tcl.
- Other packages like pgAgent, pgBouncer and Slony are useful for larger production servers, only checked as needed.
All those optional packages can be later installed through 'Application Stack Builder'.
Note: There are also other non-officially supported language such as PL/V8, PL/Lua PL/Java available.
Open pgAdmin and connect to your server by double clicking on its name, ex. 'PostgreSQL 9.5 (localhost:5432).
From this point you can follow guides such as the excellent book PostgreSQL: Up and Running, 2nd Edition ( http://shop.oreilly.com/product/0636920032144.do ).
Optional: Manual Service Startup Type
PostgreSQL runs as a service in the background which is slightly different than most programs. This is common for databases and web servers. Its default Startup Type is Automatic which means it will always run without any input from you.
Why would you want to manually control the PostgreSQL service? If you're using your PC as a development server some of the time and but also use it to play video games for example, PostegreSQL could slow down your system a bit while its running.
Why wouldn't you want manual control? Starting and stopping the service can be a hassle if you do it often.
If you don't notice any difference in speed and prefer avoiding the hassle then leave its Startup Type as Automatic and ignore the rest of this guide. Otherwise...
Go to Control Panel -> System and Security -> Administrative Tools.
Select 'Services' from the list, right click on its icon, and select Send To -> Desktop to create a desktop icon for more convenient access.
Close the Administrative Tools window then launch Services from the desktop icon you just created.
Scroll down until you see a service with a name like postgresql-x##-9.# (ex. 'postgresql-x64-9.5').
Right click on the postgres service, select Properties -> Startup type -> Manual -> Apply -> OK. You can change it back to automatic just as easily.
If you see other PostgreSQL related services in the list such 'pgbouncer' or 'PostgreSQL Scheduling Agent - pgAgent' you can also change their Startup Type to Manual because they're not much use if PostgreSQL isn't running. Although this will mean more hassle each time you start and stop so it's up to you. They don't use as many resources as PostgreSQL itself and may not have any noticeable impact on your systems performance.
If the service is running its Status will say Started, otherwise it isn't running.
To start it right click and select Start. A loading prompt will be displayed and should disappear on its own soon after. If it gives you an error try a second time. If that doesn't work then there was some problem with the installation, possibly because you changed some setting in Windows most people don't change, so finding the problem might require some sleuthing.
To stop postgres right click on the service and select Stop.
If you ever get an error while attempting to connect to your database check Services to make sure its running.
For other very specific details about the EDB PostgreSQL installation, e.g. the python runtime version in the official language pack of a specific PostgreSQL version, always refer to the official EBD installation guide , change the version in link to your installer's major version.
Postgresql Brew Default User
Postgres.app for Mac OSX
An extremely simple tool for installing PostgreSQL on a Mac is available by downloading Postgres.app.
You can change preferences to have PostgreSQL run in the background or only when the application is running.
I wanted to point out some straightforward commands for doing this database upgrade on your Mac, if you, like me, have ignored doing so. This post from Olivier Lacan was a great help and I just wanted to make it even clearer that it's this easy:
Glorious! Here's what the original error looked like for me, for SEO juice and future reference:
So, I ran the above commands - here's the full output in case you're curious.
I hope that helps someone in the future!
P.S.: Cleanup!
If your app works well once you've upgraded - your 'old' Postgres 12 might take up a ton of space:
You can clean that up with:
