Ubuntu 18.04-de PostgreSQL-y nädip gurmaly we ulanmaly


PostgreSQL (gysgaça Postgres) açyk çeşme, güýçli, ösen, ýokary öndürijilik we durnukly baglanyşyk-resminama maglumatlar bazasy ulgamy. Howpsuz maglumatlary saklamak we dolandyrmak üçin köp sanly aýratynlyk bilen bilelikde SQL dilini ulanýar we ösdürýär.

Uly, çylşyrymly göwrümli maglumatlary dolandyrmak we ýokary derejeli maglumatlaryň bitewiligini üpjün etmek bilen bir hatarda kärhana derejesinde we ýalňyşlyga çydamly gurşawy döretmek üçin täsirli, ygtybarly we ulaldylyp bilner. Postgres, maglumat saklamak kynçylyklaryny çözmek üçin öz çözgütleriňizi ösdürip bilersiňiz, indeksler API-ler ýaly aýratynlyklar bilen hem giňelýär.

Bu makalada, PostgreSQL-i Ubuntu 18.04 serwerine nädip gurmalydygyny (köne Ubuntu neşirlerinde hem işleýär) we ulanmagyň käbir esasy usullaryny öwreneris.

“Ubuntu” -da “PostgreSQL” -ni nädip gurmaly

Ilki bilen ammar konfigurasiýasyny saklaýan /etc/apt/sources.list.d/pgdg.list faýly dörediň, soňra ammar açaryny ulgamyňyza import ediň, ulgam paketleriň sanawyny täzeläň we aşakdaky buýruklary ulanyp Postgres paketini guruň.

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

Postgres gurlansoň, maglumat bazasy hyzmaty awtomatiki usulda başlandy we aşakdaky buýrugy ýazyp tassyklap bilersiňiz.

$ sudo systemctl status postgresql.service

PostgreSQL rollaryny we maglumat bazalaryny nädip ulanmaly

Postgres-de müşderiniň tassyklanylyşy /etc/postgresql/10/main/pg_hba.conf konfigurasiýa faýly tarapyndan dolandyrylýar. Bellenen tanamak usuly, maglumatlar bazasynyň dolandyryjysy üçin deň bolup, müşderiniň operasiýa ulgamynyň ulanyjy adyny operasiýa ulgamyndan alýar we ýerli baglanyşyklar üçin (aşakdaky ýaly görkezilişi ýaly) girmek üçin talap edilýän maglumatlar bazasynyň ulanyjy adyna laýyk gelýändigini ýa-da ýokdugyny barlaýar. skrinshot).

Gurmak prosesinde, postgres atly ulgam ulanyjy hasaby parolsyz döredildi, bu hem esasy maglumatlar bazasynyň dolandyryjysynyň ulanyjy ady.

$ sudo vim /etc/postgresql/10/main/pg_hba.conf

Mundan başga-da, postgres maglumatlar bazasyna giriş rugsady rollar arkaly ýerine ýetirilýär. Bir rol, maglumatlar bazasynyň ulanyjysy ýa-da roluň döredilişine baglylykda maglumatlar bazasyny ulanyjylaryň topary hökmünde kabul edilip bilner.

Bellenen rol postgresdir. Möhümi, maglumatlar bazasynyň rollary operasiýa ulgamynyň ulanyjylary bilen konseptual taýdan doly baglanyşykly däl, ýöne iş ýüzünde olar aýry bolup bilmezler (mysal üçin, müşderiniň tassyklanylyşy barada).

Möhümi, rollar maglumatlar bazasynyň obýektlerine eýe bolup biler we şol obýektlere kimiň haýsy obýektlere girip biljekdigini gözegçilikde saklamak üçin beýleki rollara artykmaçlyklar berip biler. Mundan başga-da, başga bir rola rolda agzalyk bermek mümkindir.

Şifrlenen parollary ulanmak üçin özlerine berlen maglumat bazalaryny dolandyrmak üçin beýleki rollary düzmek üçin, adaty postgres rolundan başga-da, setiri üýtgetmeli.

Then restart the postgresql service to apply the recent changes.
$ sudo systemctl restart postgresql

Ubuntu-da PostgreSQL-ni nädip ulanmaly

Hemme zat gurlansoň, postgres ulgam hasabyna aşakdaky buýruk bilen girip bilersiňiz, bu ýerde -i baýdagy sudo-ny maksatly ulanyjynyň parol maglumatlar bazasynyň giriş gabygy hökmünde görkezilen gabygyny işletmegi buýurýar.

$ sudo -i -u postgres 
$ psql		#to launch the postgres shell program  
postgres=#

Postgres gabygyna göni girmek üçin, postgres ulanyjy hasabyna girmän, aşakdaky buýrugy işlediň.

$ sudo -i -u postgres psql

Aşakdaky buýrugy ýazyp, postgresden çykyp/çykyp bilersiňiz.

postgres=# \q

Aşakdaky buýrugy ulanyp, täze ulanyjy roluny dörediň.

postgres=# CREATE ROLE tecmint;

LOGIN atributy bilen rol döretmek üçin aşakdaky buýrugy ulanyň (LOGIN atributly rollary maglumatlar bazasy ulanyjylary bilen deň hasaplap bolar).

postgres=#CREATE ROLE tecmint LOGIN;
OR
postgres=#CREATE USER name;	#assumes login function by default

Parol bilen bir rol hem döredilip bilner, maglumat bazasyna birikdirilende ulanyjylardan kodlanan paroly üpjün etmegini haýyş etmek üçin müşderini tanamak usulyny düzen bolsaňyz, bu peýdalydyr.

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

Bar bolan ulanyjy rollaryny sanamak üçin bu buýruklaryň islendigini ulanyň.

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;

Bar bolan ulanyjy roluny taşlamak üçin görkezilişi ýaly DROP ROLE buýrugyny ulanyň.

postgres=# DROP ROLE tecmint;

Belli bir at bilen (meselem, tecmint ulanyjy) rol döredeniňizden soň, görkezilişi ýaly şol rol bilen dolandyryljak maglumat bazasyny döredip bilersiňiz (rol bilen birmeňzeş at bilen).

postgres=# CREATE DATABASE tecmint;

Maglumat bazasynyň tekstini dolandyrmak üçin, postgres gabygyna tekmint roly hökmünde giriň, parolyňyzy aşakdaky ýaly beriň.

$ sudo -i -u tecmint psql

Tablisalary döretmek gaty aňsat, görkezilişi ýaly TecMint.com awtorlary hakda maglumatlary saklaýan awtorlar atly synag tablisasyny dörederis.

tecmint=>CREATE TABLE authors (
    code      char(5) NOT NULL,
    name    varchar(40) NOT NULL,
    city varchar(40) NOT NULL
    joined_on date NOT NULL,	
    PRIMARY KEY (code)
);

Tablisa döredilenden soň, aşakdaky ýaly käbir maglumatlar bilen doldurmaga synanyşyň.

tecmint=> INSERT INTO authors VALUES(1,'Ravi Saive','Mumbai','2012-08-15');

Tablisada saklanýan maglumatlary görmek üçin SELECT buýrugyny işledip bilersiňiz.

tecmint=> SELECT * FROM authors;

Häzirki maglumatlar bazasyndaky ähli tablisalary aşakdaky buýruk bilen sanap bilersiňiz.

tecmint=>\dt

Häzirki maglumatlar bazasyndaky tablisany aýyrmak üçin DROP buýrugyny ulanyň.

tecmint=> DROP TABLE authors;

Datahli maglumat bazalaryny sanamak üçin aşakdaky buýruklaryň islendigini ulanyň.

tecmint=>SELECT datname FROM pg_database;
OR
tecmint=>\list	#shows a detailed description 
OR
tecmint=>\l

Maglumat bazasyny pozmak isleseňiz, mysal üçin DROP buýrugyny ulanyň.

tecmint=>DROP DATABASE tecmint;

Şeýle hem aşakdaky buýrugy ulanyp, bir maglumat bazasyndan beýlekisine aňsatlyk bilen geçip bilersiňiz.

tecmint=>\connect database_name

Has giňişleýin maglumat üçin PostgreSQL 10.4 Resminamalaryna serediň.

Häzirlikçe! Bu makalada Ubuntu 18.04-de PostgreSQL maglumat bazasyny dolandyrmak ulgamyny nädip gurmalydygyny we ulanmalydygyny düşündirdik. Soraglaryňyzy ýa-da pikirleriňizi teswirlerde iberip bilersiňiz.