Ki jan yo enstale ak konfigirasyon PostgreSQL sou Ubuntu 20.04

PostgreSQL, souvan refere li kòm Postgres, se yon pwisan, sous louvri sistèm baz done relasyon objè. PostgreSQL te bati yon repitasyon solid pou fyab, karakteristik solid, ak pèfòmans pami devlopè yo.

Ou pral konnen ki jan yo enstale PostgreSQL sou Ubuntu 20.04 LTS Focal Fossa ou sistèm operasyon nan gid sa a. Menm prensip la ap travay pou nouvo vèsyon an Ubentu 21.04 (Hirsute Ipopotam).

Kondisyon

Tcheke epi mete ajou sistèm operasyon Ubuntu 20.04 ou a.

sudo apt update && sudo apt upgrade -y

reklam


Enstale PostgreSQL sou Ubuntu 20.04

Pa default, PostgreSQL disponib nan depo prensipal Ubuntu. Ou ka enstale li nan sous la, ki se devan depo depo a tou.

Enstale PostgreSQL lè l sèvi avèk apt

Pou enstale PostgreSQL lè l sèvi avèk manadjè pake apt sou Ubuntu 20.04, antre lòd sa a:

sudo apt install postgresql-client

Ou pral enstale a (Pake kontribisyon PostgreSQL), ki gen siplemantè pou sistèm baz done PostgreSQL la.

Egzanp pwodiksyon:

~$ sudo apt install postgresql postgresql-contrib
 [sudo] password for bytesboss: 
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following additional packages will be installed:
   libllvm10 libpq5 postgresql-12 postgresql-client-12 postgresql-client-common
   postgresql-common sysstat
 Suggested packages:
   postgresql-doc postgresql-doc-12 libjson-perl isag
 The following NEW packages will be installed:
   libllvm10 libpq5 postgresql postgresql-12 postgresql-client-12
   postgresql-client-common postgresql-common postgresql-contrib sysstat
 0 upgraded, 9 newly installed, 0 to remove and 3 not upgraded.
 Need to get 30.6 MB of archives.
 After this operation, 121 MB of additional disk space will be used.
 Do you want to continue? [Y/n]

Antre "Y" pou kontinye ak enstalasyon an. Pwosesis la ta dwe pran mwens pase 20 segonn. Yon fwa enstale, ou ka verifye enstale PostgreSQL la lè w tape lòd sa a:

sudo systemctl status postgresql

Egzanp pwodiksyon:

~$ sudo systemctl status postgresql
 ● postgresql.service - PostgreSQL RDBMS
      Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
      Active: active (exited) since Tue 2021-06-29 05:00:05 PDT; 3min 29s ago
    Main PID: 4238 (code=exited, status=0/SUCCESS)
       Tasks: 0 (limit: 4617)
      Memory: 0B
      CGroup: /system.slice/postgresql.service
 Jun 29 05:00:05 ubuntu systemd[1]: Starting PostgreSQL RDBMS…
 Jun 29 05:00:05 ubuntu systemd[1]: Finished PostgreSQL RDBMS.

Si li pa pèmèt pa kèk chans, tou senpleman tape kòmansman an ak pèmèt soti nan lòd la bòt anba a.

sudo systemctl enable postgresql && sudo systemctl start postgresql

Enstale PostgreSQL soti nan sous

Pou enstale PostgreSQL soti nan sous la, w ap bezwen enstale kèk depandans siplemantè. Premyèman, antre lòd sa a pou jwenn sistèm Ubuntu ou a ajou.

sudo apt install wget curl ca-certificates 

Apre sa, telechaje kle GPG ki nesesè pou ajoute depo sous PostgreSQL la:

wget -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc \
 | sudo apt-key add - 

Koulye a, ajoute kreye PPA a koutim jan sa a. Remake byen ke sa a se pou Ubuntu 20.04 sèlman. Ou pral bezwen chanje pati fokal la nan hirsute si w ap itilize Ubuntu 21.04.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ \
 focal-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' 

Kontinye mete ajou depo ou yo epi enstale PostgreSQL ak PostgreSQL-Contrib

sudo apt update && sudo apt-get install postgresql postgresql-contrib -y

Egzanp pwodiksyon:

~$ sudo apt-get install postgresql postgresql-contrib 
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following additional packages will be installed:
   libpq5 postgresql-13 postgresql-client-13
 Suggested packages:
   postgresql-doc postgresql-doc-13
 The following NEW packages will be installed:
   postgresql postgresql-13 postgresql-client-13 postgresql-contrib
 The following packages will be upgraded:
   libpq5
 1 upgraded, 4 newly installed, 0 to remove and 7 not upgraded.
 Need to get 16.9 MB of archives.
 After this operation, 56.0 MB of additional disk space will be used.
 Do you want to continue? [Y/n] y

Antre "Y" epi kontinye ak enstalasyon an. Yon fwa fè, verifye enstalasyon an ak estati sèvis la.

sudo systemctl status postgresql

Si enstale kòrèkteman, ou ta dwe jwenn yon estati ok, menm jan nan egzanp anvan an lè l sèvi avèk apt manager.

Kòmandman sèvis pou PostgreSQL

Sèvè baz done PostgreSQL la kouri kòm yon sèvis anba non "postgresql“. Ou ka jere sèvis la pa kouri kòmandman ki anba yo.

  • Sispann sèvè PostgreSQL:
sudo systemctl stop postgresql
  • Kòmanse sèvè PostgreSQL:
sudo systemctl start postgresql
  • Rekòmanse PostgreSQL (egzanp apre ou fin chanje paramèt konfigirasyon) sèvè:
sudo systemctl restart postgresql
  • Rechaje sèvè PostgreSQL:
sudo systemctl reload postgresql
  • Tcheke estati PostgreSQL:
sudo systemctl status postgresql

Felisitasyon, ou byen enstale sèvè baz done PostgreSQL la.


reklam


Konfigure sèvè PostgreSQL la

Chanje nan kont Postgres

Anvan ou kontinye, sonje, sèlman superitilizatè ak wòl ki gen privilèj kreye wòl ka kreye nouvo wòl nan Postgres. Pandan enstalasyon an, yo te kreye yon kont itilizatè yo rele Postgres ki asosye ak wòl default Postgres la.

Pou angaje ak kont lan, ou ka fè kòmandman sa yo:

sudo -i -u postgres

Koulye a, ak antre nan pi wo a, ou ka jwenn aksè nan èd memwa PostgreSQL imedyatman lè w tape:

psql

Ou pral remake tousuit tèminal la chanje ak (postgres = #) kounye a yo te nan liy lan lòd tèminal. Sa vle di ou gen siksè konekte ak baz done a.

Pou sòti baz done Postgres la, ou ka fè sa lè w tape sa ki annapre yo:

\q

Altènatif pou chanje kont Postgres

Yon fason altènatif pou kominike avèk baz done Postgres la san yo pa chanje kont itilizatè se sèvi ak yon lòd sudo pou konekte dirèkteman. Ou ka fè sa lè w tape:

sudo -u postgres psql

Sa a se ideyal pou itilize plis, paske li ekonomize tan konekte ou dirèkteman san yo pa bezwen fè kòmandman siplemantè tèminal bash.

Pou sòti nan tèminal la, menm jan premye opsyon a, ou ka sòti lè w tape sa ki annapre yo:

/q

Kreye itilizatè ak baz done

Koulye a, ou ka kreye wòl itilizatè si ou vle. Remake byen, sèlman superitilizatè ak wòl ak (kreyaterol) privilèj ka kreye nouvo wòl. Pou kreye yon nouvo itilizatè, tape sa ki annapre yo:

sudo su - postgres -c "createuser <name>"

Koulye a, ou ka kreye yon baz done PostgreSQL pou nouvo itilizatè ou te kreye a:

sudo su - postgres -c "createdb <namedb>"

Pou fini, ou bezwen chanje nan kont superitilizatè Postgres la pou bay pèmisyon nan nouvo baz done a.

Konekte ak kont super itilizatè Postgres:

sudo -u postgres psql

Bay aksè a pou :

GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;

Yon fwa fini, pou sòti, tape sa ki annapre yo:

/q

UFW Firewall pèmèt pou PostgreSQL

Ou pral bezwen kreye yon règ firewall UFW pou pèmèt PostgreSQL kominike sou pò default li yo 5432 epi li nesesè si w ap planifye pou itilize nenpòt lòt bagay anplis localhost. Sa a ka fè lè w tape lòd sa a:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

reklam


Aksè Remote nan PostgreSQL

Si ou bezwen aksè default nan PostgreSQL, sa ka fasil pou fè pa chanje default koute koòdone lokal la nan (127.0.0.1) nan yon IP, subnet oswa menm tout koòdone, ki ka fè nan la. (postgresql.conf) dosye-a.

Premyèman, louvri fichye postgresql.conf la lè l sèvi avèk nano:

sudo nano /etc/postgresql/12/main/postgresql.conf

Koulye a, desann jiskaske ou jwenn (Anviwònman Koneksyon) epi chanje a (listen_addresses = 'localhost') nan adrès. Pifò ta chwazi pou koute tout koòdone, espesyalman lè yo ap kouri sou plizyè sèvè ki mande pou konekte ak baz done PostgreSQL pa chanje. lokalost yo (*).

Egzanp:

postgress koute adrès ubuntu 20.04

Koulye a sove fichye a (CTRL+O), Lè sa a, sòti (CTRL + X) epi rekòmanse egzanp PostgreSQL ou a:

sudo service postgresql restart

Pou tcheke ke chanjman ou te fè yo ap viv, itilizatè yo ka fè sa ak sèvis piblik la ss bati nan Ubuntu.

ss -nlt | grep 5432

Ou ta dwe wè bagay sa yo:

koute chèk postgresql ak ubuntu

Pou fini, ou ka configured sèvè a pou aksepte koneksyon aleka lè w modifye fichye (pg_hba.conf).

Louvri (pg_hba.conf) lè l sèvi avèk nano:

sudo nano /etc/postgresql/12/main/pg_hba.conf

Soti nan pwen sa a, ou ka mete plizyè opsyon. Kèk egzanp anba a:

egzanp postgresql

Kòmantè ak konklizyon:

Nan gid la, ou te aprann kijan pou enstale PostgreSQL lè l sèvi avèk manadjè pake apwopriye a ak atravè sous, ki rekòmande plis si w ap chèche nouvo karakteristik ak kreye yon wòl ak baz done ak koneksyon aleka mete kanpe. An jeneral, PostgreSQL gen anpil avantaj an tèm de konpatibilite, évolutivité, sekirite, ak lòt karakteristik konpare ak lòt sistèm jesyon baz done. Kontrèman ak lòt Sistèm jesyon baz done (DBMS), li apiye pa yon gwo rezo konpayi ki fòme yon kominote solid ini.

Pou plis enfòmasyon sou itilizasyon PostgreSQL, vizite ofisyèl la dokiman.

Si ou gen kesyon, santi yo lib yo kite yon kòmantè anba a.

Ban-m pran abònman
Notifye nan
0 kòmantè
Aliye komantè
Wè tout kòmantè
0
Ta renmen panse ou, tanpri fè kòmantè.x