---
layout: default
navsection: installguide
title: Install PostgreSQL 9.4+
...
{% comment %}
Copyright (C) The Arvados Authors. All rights reserved.

SPDX-License-Identifier: CC-BY-SA-3.0
{% endcomment %}

Arvados requires at least version *9.4* of PostgreSQL. We recommend using version 10 or newer.

* "AWS":#aws
* "CentOS 7":#centos7
* "Debian or Ubuntu":#debian

h3(#aws). AWS

When deploying on AWS, Arvados can use an Aurora RDS PostgreSQL database. Aurora Serverless is not recommended.

h3(#centos7). CentOS 7
{% assign rh_version = "7" %}
{% include 'note_python_sc' %}

# Install PostgreSQL
  <notextile><pre># <span class="userinput">yum install rh-postgresql12 rh-postgresql12-postgresql-contrib</span>
~$ <span class="userinput">scl enable rh-postgresql12 bash</span></pre></notextile>
# Initialize the database
  <notextile><pre># <span class="userinput">postgresql-setup initdb</span></pre></notextile>
# Configure the database to accept password connections from localhost
  <notextile><pre><code># <span class="userinput">sed -ri -e 's/^(host +all +all +(127\.0\.0\.1\/32|::1\/128) +)ident$/\1md5/' /var/lib/pgsql/data/pg_hba.conf</span></code></pre></notextile>
# Configure the database to accept password connections from the local network (replace @10.9.8.0/24@ with your private network mask)
  <notextile><pre><code># <span class="userinput">echo 'host all all 10.9.8.0/24 md5' | tee -a /var/lib/pgsql/data/pg_hba.conf</span></code></pre></notextile>
# Configure the database to launch at boot and start now
  <notextile><pre># <span class="userinput">systemctl enable --now rh-postgresql12-postgresql</span></pre></notextile>

h3(#debian). Debian or Ubuntu

Debian 10 (Buster) and Ubuntu 16.04 (Xenial) and later versions include a sufficiently recent version of Postgres.

# Install PostgreSQL
<notextile><pre># <span class="userinput">apt-get --no-install-recommends install postgresql postgresql-contrib</span></pre></notextile>
# Configure PostgreSQL to accept password connections from the local network (replace @10.9.8.0/24@ with your private network mask)
<notextile><pre># <span class="userinput">echo 'host all all 10.9.8.0/24 md5' | tee -a /etc/postgresql/*/main/pg_hba.conf</span></pre></notextile>
# Configure the database to launch at boot and start now
<notextile><pre># <span class="userinput">systemctl enable --now postgresql</span></pre></notextile>