Cum se instalează PostgreSQL pe Ubuntu, CentOS și Windows?

Publicat: 2021-06-08

PostgreSQL este unul dintre cele mai populare sisteme de baze de date obiect-relaționale, multiplatformă, open-source, care este robust, performant și fiabil cu o comunitate puternică.

Datează din 1986, ca parte a proiectului POSTGRES de la Universitatea din California, Berkeley, și are 30 de ani de dezvoltare activă pe platforma sa de bază. Performanța sa constantă de-a lungul anilor și-a dovedit integritatea, arhitectura și extensibilitatea pentru uzul întreprinderilor. Este compatibil cu ACID și oferă suport pentru suplimente puternice, cum ar fi popularul extensitor de baze de date geospațiale PostGIS.

Vom acoperi instalarea PostgreSQL pe platformele comune în acest articol.

Asadar, haideti sa începem.

Ubuntu

PostgreSQL este disponibil pentru toate variantele și versiunile de Ubuntu. Aveți posibilitatea de a alege să instalați și să utilizați versiunea disponibilă în mod implicit cu versiunea dvs. de Ubuntu și acceptată pe durata de viață a acesteia sau să utilizați o anumită versiune adăugând depozitul PostgreSQL și instalând aceeași. Vom acoperi ambele opțiuni aici.

Pentru a utiliza versiunea implicită acceptată furnizată de depozitul Ubuntu, rulați:

 $ sudo apt-get update $ sudo apt-get -y install postgresql

PostgreSQL Apt Repository acceptă versiunile LTS actuale ale Ubuntu, adică 20.04 , 18.04 și 16.04 . Deși este posibil să nu fie pe deplin acceptat, aceleași pachete funcționează și pe versiunile non-LTS, folosind cea mai apropiată versiune LTS.

Pentru a utiliza depozitul de apt PostgreSQL , urmați acești pași:

 $ 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://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql

Pentru a instala o anumită versiune din depozitul PostgreSQL, în loc de doar postgresql care se referă la cea mai recentă versiune, specificați-o ca postgresql-12 :

 $ sudo apt-get -y install postgresql-12

Depozitul conține, de asemenea, diferite pachete, inclusiv suplimente de la terți. De exemplu, pachetele disponibile în mod obișnuit pentru versiunea 12 a PostgreSQL includ:

postgresql-client-12 biblioteci client și binare client
postgresql-12 server de bază de date de bază
postgresql-contrib-9.x module suplimentare furnizate (parte a pachetului postgresql-xx în versiunea 10 și ulterioară)
libpq-dev biblioteci și anteturi pentru dezvoltarea frontend în limbajul C
postgresql-server-dev-12 biblioteci și anteturi pentru dezvoltarea backend-ului limbajului C
pgadmin4 utilitarul de administrare grafică pgAdmin 4

După finalizarea instalării, puteți verifica starea serviciului DB utilizând comanda de mai jos:

 $ sudo systemctl status postgresql.service

Pentru Ubuntu, după instalare, serviciul ar trebui să fie activat și să ruleze ca:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $

CentOS

La fel ca Ubuntu, depozitele RHEL/CentOS conțin și o versiune specifică de PostgreSQL, care este acceptată pe toată durata de viață pentru sistemul de operare. Puteți instala același lucru folosind:

 $ sudo yum install -y postgresql-server

sau puteți folosi DNF dacă utilizați CentOS 8.

 $ sudo dnf install -y postgresql-server

Rulați comenzile de mai jos după instalare pentru a inițializa DB, activați serviciul PostgreSQL și porniți-l:

 $ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service

Sau pentru a folosi pachetele direct din depozitele PostgreSQL yum , trebuie să adăugăm depozitul ca:

 $ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Și apoi pentru a instala o versiune specifică de PostgreSQL, cum ar fi versiunea 13, care este cea mai recentă versiune stabilă la momentul scrierii acestui articol, utilizați:

 $ sudo yum install -y postgresql13-server

Depozitul yum conține și pachete suplimentare pentru PostgreSQL, dintre care unele dintre cele importante sunt enumerate mai jos:

postgresql-client biblioteci și binare client
postgresql-server server de bază de date de bază
postgresql-contrib module suplimentare furnizate
postgresql-devel biblioteci și anteturi pentru dezvoltarea limbajului C

Rulați pașii de mai jos post-instalare pentru a inițializa DB, activați serviciul PostgreSQL și porniți-l:

 $ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13

Puteți verifica starea serviciului DB utilizând comanda de mai jos:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $

Windows

Programele de instalare Windows pe 32 și 64 de biți sunt disponibile de pe site-ul oficial PostgreSQL aici.

  • Puteți descărca binarul aplicabil pe baza versiunii și arhitecturii necesare.

postgresql-descărcare

  • Vom descărca cea mai recentă versiune disponibilă, care este v13.3 pentru platforma Windows pe 64 de biți. Odată ce descărcarea este finalizată, lansați programul de instalare făcând dublu clic pe acesta.

postgresql-install-launch

  • Faceți clic pe Următorul pentru a continua.

postgresql-install-location

  • Faceți clic pe Următorul pentru a continua cu calea implicită sau pentru a specifica calea de instalare personalizată.

  • Puteți păstra componentele implicite selectate și faceți clic pe Următorul pentru a continua.

postgresql-install-datadir

  • Apoi, solicită locația directorului de date; acesta poate fi păstrat ca implicit, cu excepția cazului în care aveți un disc dedicat separat sau un director alocat pentru acesta. Faceți clic pe Următorul pentru a continua.

postgresql-install-parola

  • Specificați o parolă puternică care va fi atribuită utilizatorului postgres . Faceți clic pe Următorul când ați terminat.

postgresql-install-port

  • Portul implicit 5432 ar trebui să fie bun pentru majoritatea cazurilor. Faceți clic pe Următorul pentru a merge la pagina următoare.

postgresql-install-locale

  • Selectați localitatea pentru DB și faceți clic pe Următorul pentru a continua.

postgresql-install-confirmation

  • Toate setările selectate pentru asistentul de instalare vor fi listate pentru a fi verificate și confirmate. Dacă trebuie schimbat ceva, întoarceți-vă și modificați același lucru sau faceți clic pe Următorul pentru a trece la pagina următoare.

postgresql-install-confirmation-1

  • Configurarea va arăta că este gata să continue instalarea. Când este gata, faceți clic pe Următorul pentru a începe instalarea.

postgresql-install-progress

  • Așteptați finalizarea instalării. Va fi afișată o confirmare pentru același lucru.

postgresql-install-completed

  • Odată finalizat, puteți debifa Stack Builder și faceți clic pe Terminare pentru a ieși din asistentul de instalare. Faceți clic pe Start Menu și căutați SQL Shell (psql) și faceți clic pe pictograma acesteia pentru a deschide shell-ul psql .

psql-meniu-start

  • SQL Shell (psql) deschide SQL Shell (psql) unde puteți interacționa cu instanța dvs. PostgreSQL după specificarea detaliilor conexiunii. Toate elementele pot fi selectate ca implicite prin simpla apăsare a Enter cu excepția parolei, unde trebuie să introduceți parola specificată pentru utilizatorul postgres în timpul vrăjitorului de instalare. Acest lucru vă va ateriza în promptul postgres=# .

psql-sql-shell-windows

Conectați-vă la PostgreSQL

Un utilizator postgres este creat automat după instalare, care are acces superadmin la instanța DB. Pe Linux, ca utilizator privilegiat, puteți trece la acest cont ca:

 $ sudo su - postgres

Odată postgres , putem reseta parola utilizatorului postgres ca:

 $ psql -c "alter user postgres with password '[email protected]'"

Și apoi lansați promptul PostgreSQL cu psql ca:

 $ psql

Acest lucru vă va duce în promptul PostgreSQL:

 $ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#

La această solicitare, puteți interacționa cu baza de date și puteți efectua sarcini de administrator sau utilizator DB. Ca demonstrație, pașii de mai jos creează o bază de date și un utilizator și apoi atribuie privilegii noului utilizator pentru a lucra la noua bază de date:

 postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=#

Putem apoi lista DB-urile folosind comanda \l :

 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#

Acum vă puteți conecta pur și simplu la o bază de date folosind:

 postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#

rezumat

PostgreSQL este una dintre bazele de date adoptate pe scară largă în lumea întreprinderilor datorită robusteții, setului de caracteristici și scalabilității. Este ușor de învățat și încearcă să fie compatibil cu standardele SQL.

Există un tutorial disponibil pentru PostgreSQL pe site-ul său oficial.