postgres install - ghdrako/doc_snipets GitHub Wiki

Binary install - Ubuntu/Debian

Do instalacji konieczne jest podłączenie repozytorium pakietów PGDG (PostgreSQL Global Development Group). Obecnie dla systemu Debian wspierane są wersje 10 „Buster”, 11 „Bullseye” i 12 „Bookworm”, a dla Ubuntu — 20.04 „Focal”, 22.04 „Jammy”, 23.10 „Mantic” i 24.04 „Noble”.

$ sudo apt-get install lsb-release
$ sudo sh-c 'echo "deb \
http://apt.postgresql.org/pub/repos/apt/ \
$(lsb_release-cs)-pgdg main" \
> /etc/apt/sources.list.d/pgdg.list'
$ wget--quiet-O- \
https://postgresql.org/media/keys/ACCC4CF8.asc \
| sudo apt-key add
$ sudo apt-get update

Aby pracować z danymi w języku innym niż angielski, może być konieczne zmienienie wartości zmiennych LC_CTYPE i LC_COLLATE.

$ locale
$ export LC_CTYPE=pl_PL.UTF8
$ export LC_COLLATE=pl_PL.UTF8

Upewnij się również, że w systemie operacyjnym ustawiona jest odpowiednia lokalizacja

$ locale-a | grep pl_PL

Jeśli tak nie jest, wygeneruj ją:

$ sudo locale-gen pl_PL.utf8

W /etc/postgresql-common/createcluster.conf ustaw przynajmniej sumy kontrolne i komunikaty po angielsku:

initdb_options = '--data-checksums--lc-messages=C'

Teraz można przystąpić do instalacji

$ sudo apt-get install postgresql-17 postgresql-client-17
$ sudo-u postgres psql-c 'select version()'

Podczas instalacji PostgreSQL tworzy specjalne konto postgres, na którego rzecz działają procesy obsługujące serwer i do którego należą wszystkie pliki związane z systemem zarządzania bazą danych. PostgreSQL będzie uruchamiany automatycznie przy ponownym uruchomieniu systemu operacyjnego. Przy ustawieniach domyślnych nie jest to problem, ponieważ w przypadku braku zapytań do serwera zużycie zasobów systemowych jest minimalne. Jeśli jednak zechcesz wyłączyć automatyczne uruchamianie, wykonaj

$ sudo systemctl disable postgresql
$ sudo systemctl stop postgresql
$ sudo systemctl start postgresql
$ sudo systemctl status postgresql

Binary install - Redhat

cat /etc/os-release 
NAME="Red Hat Enterprise Linux"
  1. Follow instruction https://www.postgresql.org/download
  2. https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-9-x86_64/
  3. Install
yum localinstall postgresql15-libs-15.0-1PGDG.rhel8.x86_64.rpm postgresql15-15.0-1PGDG.rhel8.x86_64.rpm postgresql15-server-15.0-1PGDG.rhel8.x86_64.rpm -y
  1. Inicialize:
# /usr/pgsql-15/bin/postgresql-15-setup initdb

Zaleca się zadeklarowanie PG_SETUP_INITDB_OPTIONS, szczególnie aby ustawić sumy kontrolne i jezyk komunikatow

# export PGSETUP_INITDB_OPTIONS='--data-checksums--lc-messages=C'
# /usr/pgsql-16/bin/postgresql-16-setup initdb
# cat /var/lib/pgsql/16/initdb.log

Ten ostatni plik pozwala sprawdzić, że wszystko poszło dobrze i powinien kończyć się słowem:

Success. You can now start the database server using:
/usr/pgsql-16/bin/pg_ctl-D /var/lib/pgsql/16/data/-l logfile start
  1. Sturtup
systemctl start postgresql-15.service
systemctl status postgresql-15.service
systemctl enable postgresql-15.service
  1. Otwarcie firewalla dla portu 5432
# systemctl status firewalld
# firewall-cmd--zone=public--add-port=5432/tcp--permanent
# firewall-cmd--reload
# firewall-cmd--list-all

Installation from source

download the latest version of PostgreSQL from their official website at https://ftp.postgresql.org/pub/source/v15.0/ after select your host operating system and version and follow the installation instructions.

  1. tar -xzf postgresql-15.0.tar.gz
  2. useradd -d /home/postgres/ postgres
mkdir -p /pg_install/pgv150 
mkdir -p /pg_data/DATA
chown -R postgres:pos
tgres /pg_install/pgv150 
chown -R postgres:postgres /pg_data/DATA
cd postgresql-15.0 
./configure --prefix=/pg_install/pgv150/
make
make install
  1. Inicjalize database
su - postgres 
/pg_install/pgv150/bin/initdb -D /pg_data/DATA/
  1. start the database cluster
VI postgres.conf
/pg_install/pgv150/bin/pg_ctl -D /pg_data/DATA/ -l logfile start