Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Lidhja me postgresql nga Windows. Lidhja e një baze të dhënash PostgreSQL

0

Unë jam në një rrugë pa krye. Ne kemi një bazë të dhënash postgres 9.2 që e përdorim prej disa kohësh. Tani duhet të jemi në gjendje të lidhemi me të nga jashtë rrjetit tonë.

Pra, ne po konfigurojmë një adresë IP të jashtme dhe po testojmë që mund të lidhemi me portin 5432 nga një host në distancë nëpërmjet telnet. Pra, kjo dëshmon se lidhja e rrjetit po funksionon, muret e zjarrit, etj. janë të gjitha të mira.

Kur përpiqem të lidhem me:
psql -h db.host.com -d dbname -p 5432 -U përdorues

kthehem psql: lidhja e serverit u mbyll papritur.

Unë e kontrollova atë
listen_addresses = "*" është vendosur në postgresql.conf

Dhe në pg_hba.conf kemi një rresht që lexon (vetëm për qëllime testimi)
presë të gjitha 0.0.0.0/0 md5

Dhe ringarkova bazën e të dhënave për të kontrolluar ndryshimet e saj të zgjedhura.
Pra, kjo duhet të lejojë lidhje nga çdo burim.

Versioni psql në serverin DB është 9.2.14 dhe në klient është 9.2.13.

Ndonjë sugjerim apo ide?

  • 1 pergjigje
  • Renditja:

    Aktiviteti

1

Do të doja të provoja disa gjëra për të marrë më shumë informacion:

    Postgres tail hyni në server për të parë se çfarë ndodh atje kur lidheni.

    Ekzekutoni psql --version për t'u siguruar që pak a shumë përputhet me versionin e serverit. (Unë shoh që e keni bërë tashmë këtë, por do ta lë këtu për pasardhësit.)

    Drejtoni strace psql .... për të parë se sa larg shkon deri te dështimi.

Më duket ende si një problem rrjeti. Cila është komanda telnet që po ekzekutoni? "IP e jashtme" tingëllon ashtu si ju në AWS. Vendosja e aksesit në distancë në një VPC kërkon shumë hapa. A keni ndonjë shërbim tjetër të hapur nga jashtë që është i hapur?

Ju gjithashtu mund të zgjidhni problemet duke mbyllur serverin Postgres dhe duke përdorur nc për të dëgjuar në 5432. Më pas lidheni me telnet dhe shikoni nëse mund të dërgoni të dhëna përpara dhe me radhë.

1

Paul, faleminderit për sugjerimet. Bëra një shtrirje dhe kontrollova versionet. Dhe kishe të drejtë, u përpoqa të lidheshe nga AWS. Rezulton se ishte niveli që përdora në balancuesin e ngarkesës për të lejuar vetëm aksesin në intervalet IP-2 IP që publikon AWS. Kur çaktivizoja irule mund të lidhesha menjëherë. Pra, kjo duhet të jetë logjikë surreale pasi kontrollova adresën IP publike të shembullit tim EC2 dhe me të vërtetë ishte renditur në irule përmes njoftimit CIDR. -

Administrimi i Sistemit

Ky postim është një tutorial i shkurtër për fillestarët, për ata që kanë instaluar PostgreSQL për herë të parë. Këtu janë të gjitha informacionet që ju nevojiten për të filluar me PostgreSQL.

Lidhja me një DBMS

Gjëja e parë që duhet të bëni është të hyni në PostgreSQL, aksesi si superpërdorues.
Cilësimet e vërtetimit janë në skedarin pg_hba.conf.
  1. lokale gjitha postgres peer
Kjo linjë thotë se përdoruesi i postgres mund të lidhet me çdo bazë të dhënash në DBMS lokale PostgreSQL nëpërmjet një foleje. Ju nuk keni nevojë të vendosni një fjalëkalim, sistemi operativ do të dërgojë emrin e përdoruesit dhe ai do të përdoret për vërtetim.
Lidhja:
  1. $ sudo -u postgres psql postgres postgres
Për të qenë në gjendje të lidheni përmes rrjetit, duhet të shtoni një linjë në pg_hdba.conf:
  1. # LLOJ METODËN E ADRESAVE TË PËRDORËSVE TË BAZAVE TË TË DHËNAVE
  2. hostssl të gjitha të gjitha 0.0.0.0/0 md5
Metoda e vërtetimit md5 do të thotë që do t'ju duhet të vendosni një fjalëkalim për t'u lidhur. Kjo nuk është shumë e përshtatshme nëse përdorni shpesh konsolën psql. Nëse doni të automatizoni diçka, lajmi i keq është se psql nuk merr një fjalëkalim si argument. Ekzistojnë dy mënyra për të zgjidhur këto probleme: vendosja e variablit të përshtatshëm të mjedisit dhe ruajtja e fjalëkalimit në një skedar të veçantë .pgpass.

Vendosja e ndryshores mjedisore PGPASSWORD

Duhet të them menjëherë se është më mirë të mos përdoret kjo metodë, sepse disa sisteme operative lejojnë përdoruesit e zakonshëm të shohin variablat e mjedisit duke përdorur ps. Por nëse dëshironi, duhet të shkruani në terminal:
  1. eksportoni PGPASSWORD=mypasswd
Variabli do të jetë i disponueshëm në sesionin aktual. Nëse keni nevojë të vendosni një ndryshore për të gjitha seancat, atëherë duhet të shtoni rreshtin nga shembulli në skedarin .bashrc ose .bash_profile

Ruajtja e fjalëkalimit në një skedar .pgpass

Nëse po flasim për Linux, atëherë skedari duhet të jetë i vendosur në $HOME (/home/username). Vetëm pronari (0600) duhet të ketë leje shkrimi dhe leximi. Ju duhet të shkruani rreshta si kjo në skedar:
  1. emri i hostit: porti: baza e të dhënave: emri i përdoruesit: fjalëkalimi
Në katër fushat e para, mund të shkruani "*", që do të thotë pa filtrim (zgjedhje e plotë).

Merr ndihme

\? - do të shfaqë të gjitha komandat e disponueshme së bashku me përshkrimin e tyre të shkurtër,
\h - do të japë një listë të të gjitha kërkesave të disponueshme,
\h KRIJO - do të japë ndihmë për një kërkesë specifike.

Menaxhimi i përdoruesve të DBMS

Si të merrni një listë të përdoruesve të PostgreSQL? Ose mund të kërkoni tabelën pg_user.
  1. SELECT * FROM pg_user ;

Krijimi i një përdoruesi të ri PostgreSQL

Nga guaska psql, kjo mund të bëhet me komandën CREATE.
  1. KRIJO PERDORUESIT ME fjalëkalim "fjalëkalim" ;
Ose mund të përdorni terminalin.
  1. Creativeuser -S -D -R -P emri i përdoruesit
Fjalëkalimi do të kërkohet.

Ndryshimi i fjalëkalimit të përdoruesit

  1. Ndrysho emrin e përdoruesit ME PASSWORD "password" ;

Ndryshimi i roleve të përdoruesve

Që përdoruesi të ketë të drejtën për të krijuar baza të dhënash, ekzekutoni pyetjen:
  1. ALTER ROLE emrin e përdoruesit WITH CREATEDB ;

Menaxhimi i bazës së të dhënave

Lista e bazave të të dhënave në terminalin psql: E njëjta gjë nga terminali Linux:
  1. psql -l
Krijimi i një baze të dhënash nga psql (Terminali PostgreSQL)
  1. KRIJO BAZA E TË DHËNAVE dbname PRONERIT dbadmin ;
Krijimi i një databaze të re duke përdorur terminalin:
  1. krijuarb -O emri i përdoruesit dbname;

Vendosja e të drejtave të hyrjes në bazën e të dhënave

Nëse përdoruesi është pronar i bazës së të dhënave, atëherë ai ka të gjitha të drejtat. Por nëse doni t'i jepni akses një përdoruesi tjetër, atëherë mund ta bëni këtë duke përdorur komandën GRANT. Pyetja e mëposhtme do t'i lejojë përdoruesit të lidhet me bazën e të dhënave. Por mos harroni për skedarin e konfigurimit pg_hba.conf, ai gjithashtu duhet të ketë lejet e duhura të lidhjes.
  1. GRANT LIDHJE NË BAZA E TË DHËNAVE dbname ME dbadmin ;

PostgreSQL është një sistem i menaxhimit të bazës së të dhënave me burim të hapur, ndër-platformë, objekt-relativ. Në këtë artikull, do të mësoni se si të instaloni PostgreSQL në Ubuntu Linux, të lidheni me të dhe të ekzekutoni disa pyetje të thjeshta SQL, si dhe si të vendosni një kopje rezervë.

Për të instaluar PostgreSQL 9.2 në Ubuntu 12.10, ekzekutoni komandat e mëposhtme:

sudo apt-add-repository ppa:pitti/ postgresql
sudo apt-get përditësim
sudo apt-get instalo postgresql-9.2

Le të përpiqemi të punojmë me DBMS përmes guaskës:

sudo -u postgres psql

Le të krijojmë një bazë të dhënash testimi dhe një përdorues testues:

KRIJO BAZA TË TË DHËNAVE test_bazë;
KRIJO PERDORUES test_user ME fjalekalimin "qwerty" ;
GRANTOJ TË GJITHA NË BAZËN E TË DHËNAVE test_baza e të dhënave për test_user;

Për të dalë nga guaska, futni komandën \q.

Tani le të përpiqemi të punojmë me bazën e të dhënave të krijuar në emër të test_user:

psql -h localhost test_baza e të dhënave test_user

Le të krijojmë një tabelë të re:

KRIJO SEQUENCE user_ids;
Përdoruesit e KRIJO TABELA (
id ÇELËSI PRIMAR INTEGER PRIMAR I DEFAULT NEXTVAL ("user_ids") ,
hyrje CHAR (64 ) ,
fjalëkalimi CHAR(64));

Vini re se ndryshe nga disa DBMS të tjera, PostgreSQL nuk ka kolona auto_increment. Në vend të kësaj, Postgres përdor sekuenca. Tani për tani, mjafton të dimë se me funksionin nextval, mund të marrim numra unikë për një sekuencë të caktuar:

SELECT NEXTVAL("user_ids" );

Duke vendosur vlerën e paracaktuar për fushën id të tabelës së përdoruesve në NEXTVAL("ids_përdoruesit" ), kemi arritur të njëjtin efekt si auto_increment. Kur shtojmë regjistrime të reja në tabelë, mund të mos specifikojmë një ID, sepse një ID unike do të gjenerohet automatikisht. Tabelat e shumta mund të përdorin të njëjtën sekuencë. Kështu, ne mund të garantojmë që vlerat e disa fushave në këto tabela të mos kryqëzohen. Në këtë kuptim, sekuencat janë më fleksibël sesa rritja automatike.

Ju mund të krijoni saktësisht të njëjtën tabelë me vetëm një komandë:

KRIJO TABELARE përdoruesit2 (
id ÇELËSI PRIMAR SERIALE,
hyrje CHAR (64 ) ,
fjalëkalimi CHAR(64));

Në këtë rast, sekuenca për fushën id gjenerohet automatikisht.

Tani, duke përdorur komandën \d, mund të shihni listën e të gjitha tabelave të disponueshme dhe duke përdorur \d përdoruesit, mund të shihni përshkrimin e tabelës së përdoruesve. Nëse nuk e merrni informacionin që po kërkoni, provoni \d+ në vend të \d. Mund të merrni një listë të bazave të të dhënave me komandën \l dhe të kaloni në një bazë të dhënash specifike me komandën \c dbname. Për të shfaqur ndihmën e komandës, thoni \? .

Është e rëndësishme të theksohet se PostgreSQL paracakton me shkronja të vogla emrat e tabelave dhe kolonave. Nëse kjo sjellje nuk dëshirohet, mund të përdoren thonjëza të dyfishta:

KRIJO TABELA "Tabelë tjetër" ("someValue" VARCHAR (64) );

Një veçori tjetër e PostgreSQL që mund të jetë e vështirë për të filluar me këtë DBMS janë të ashtuquajturat "skema". Një skemë është diçka si një hapësirë ​​emri për tabelat, si një direktori tabelash brenda një baze të dhënash.

Krijimi i skemës:

KRIJO prenotime SKEMA;

Kalimi në skemë:

VENDOSI shtegun e kërkimit TE prenotimet;

Ju mund të shikoni listën e skemave ekzistuese me komandën \dn. Skema e paracaktuar është publike. Në parim, ju mund të përdorni me sukses PostgreSQL pa e ditur ekzistencën e skemave. Por kur punoni me kodin e trashëguar, si dhe në disa raste, njohja e skemave mund të jetë shumë e dobishme.

Përndryshe, puna me PostgreSQL nuk është shumë e ndryshme nga puna me çdo DBMS tjetër relacionale:

INSERT INTO përdoruesit (hyrja, fjalëkalimi)
VALUES("afiskon", "123456");
SELECT * NGA përdoruesit;

Nëse tani përpiqeni të lidheni me postgres nga një makinë tjetër, do të dështoni:

psql -h 192.168.0.1 test_baza e të dhënave test_user

psql: nuk mund të lidhej me serverin: Lidhja u refuzua
A funksionon serveri në host "192.168.0.1" dhe po pranon
Lidhjet TCP/IP në portin 5432?

Për ta rregulluar këtë, shtoni rreshtin:

listen_addresses = "localhost,192.168.0.1"

... te /etc/postgresql/9.2/main/postgresql.conf gjithashtu.

Kujdes : Nëse jeni duke punuar në Windows dhe nuk keni instaluar ende PostgreSQL dhe Debit Plus V12, atëherë mund të shkarkoni asamblenë Debit Plus V12 nga faqja e shkarkimit me një PostgreSQL DBMS të para-instaluar dhe një bazë të dhënash të lidhur (me një konfigurim bazë për Ukrainën). Përndryshe, së pari duhet të instaloni PostgreSQL DBMS dhe paketën softuerike Debit Plus V12, pas së cilës mund të konfiguroni lidhjen dhe të importoni bazën e të dhënave PostgreSQL, duke ndjekur këtë udhëzim.

Për të lidhur një bazë të dhënash PostgreSQL, ndiqni këto hapa:

    Ekzekutoni "Debit Plus V12" dhe shtoni një bazë të re (menyja e kontekstit "Shto të re").

    Lini një shenjë në kutinë "Shto në listën ekzistuese".

"DBMS" - POSTGRE.

"Serveri i bazës së të dhënave" - ​​localhost.

"Emri i bazës së të dhënave" - ​​specifikoni emrin e bazës së të dhënave nga PostgreSQL DBMS me shkronja latine me shkronja të vogla (gërma të vogla).

Shënim: Zakonisht përdoret një bazë. Për qëllime të veçanta, baza e të dhënave mund të ndahet në disa, atëherë duhet të kontrolloni kutinë pranë "Përdor bazat e të dhënave të shumta", klikoni butonin "Tjetër" dhe specifikoni korrespondencën e "etiketave" me bazat e të dhënave fizike. Kjo mund të jetë e nevojshme, për shembull, nëse bazat e të dhënave të disa ndërmarrjeve do t'i referohen të njëjtave drejtori (kontraktorët, nomenklatura, etj.). Ky rast nuk diskutohet më tej.

"Direktoria e cilësimeve" - ​​specifikoni shtegun për në cilësimet e bazës së të dhënave PostgreSQL (drive\DebetPlusV12\base\pgdpbase).

Ruani ndryshimet tuaja duke klikuar butonin "Finish".

    Ekzekutoni pgAdmin (administratori i bazës së të dhënave PostgreSQL), shtoni një server (File/Add Server...) dhe shtoni një bazë të dhënash të re (menyja New Database...).

Fusni emrin e serverit, localhost në fushën Host, plotësoni pjesën tjetër të fushave sipas dëshirës.

Fusni emrin e bazës së të dhënave në fushën "Emri" (njëjtë si në fushën "Server" në cilësimet për t'u lidhur me bazën e të dhënave "Debit Plus V12").

    Për të importuar një bazë të dhënash nga një arkiv, përdorni menynë "Rivendos...".

Specifikoni shtegun për në arkivin e bazës së të dhënave dpbase.bakup (drive\DebetPlusV12\base\pgdpbase).

    Mund të shtoni përdoruesin dpadmin, i cili është administratori i paracaktuar në Debit Plus V12 (pa fjalëkalim).

Cakto të gjitha të drejtat këtij përdoruesi.

shënim : Ju nuk mund të shtoni përdoruesin dpadmin, atëherë kur aktivizoni bazën e të dhënave do t'ju duhet të vendosni emrin e administratorit të postgres.

Rifresko listën e bazave (menyja "Rifresko").

shënim : Nëse nuk dëshironi t'i jepni përdoruesit lejet "Superuser", atëherë jepni lejet "Tables" dhe "Views". Për ta bërë këtë, pasi të keni zgjedhur objektin përkatës, zgjidhni artikullin e menysë së kontekstit "Grant Wizard".

Në skedën "Përzgjedhja", klikoni butonin "Kontrollo të gjitha", dhe në skedën "Privilegjet", kontrolloni kutinë "ALL" dhe klikoni butonin "Shto/Ndrysho". Ruani ndryshimet tuaja.

    Aktivizoni cilësimin e lidhjes së bazës së të dhënave në softuerin Debit Plus V12 (menyja e kontekstit "Bëni aktiv").

Sistemi do të kërkojë një fjalëkalim për t'u lidhur me bazën e të dhënave. Klikoni Po.

Kujdes! Nëse një mesazh i tillë nuk shfaqet, atëherë filloni të përditësoni strukturat e bazës së të dhënave duke zgjedhur artikullin e menysë "Vegla" / "Përditësimi i strukturave të bazës së të dhënave".

Si rezultat, do të shfaqet dritarja e mëposhtme:

Lini të gjitha kutitë e kontrollit të paracaktuar (duhet të ketë shenja kontrolli në kolonën "Rindeks" për të gjitha tabelat e bazës së të dhënave).

Pas përfundimit të modifikimit, mund të filloni të punoni.

    Ekzekutoni "Debit Plus V12" dhe shtoni një bazë të re (menyja e kontekstit "Shto të re").

    Lini një shenjë në kutinë "Shto në listën ekzistuese":

Në fushën e parë, vendosni një emër arbitrar për bazën e të dhënave (emri mund të jetë i ndryshëm në çdo kompjuter që funksionon).

"DBMS" - POSTGRE.

"Serveri i bazës së të dhënave" - ​​emri ose adresa IP e serverit.

"Port i serverit të bazës së të dhënave" - ​​specifikoni portin e serverit të bazës së të dhënave, si parazgjedhje 5432.

"Emri i bazës së të dhënave" - ​​specifikoni emrin e bazës së të dhënave me shkronja latine me shkronja të vogla.

"Emri i skemës së bazës së të dhënave" është dpbase.

Kontrolloni kutinë "Përdor vetëm autorizimin e Debit Plus".

"Direktoria e cilësimeve" - ​​specifikoni shtegun për në cilësimet e bazës së të dhënave PostgreSQL (rruga e rrjetit\DebetPlusV12\base\pgdpbase).

Ruani ndryshimet duke klikuar butonin "Finish" dhe më pas aktivizoni bazën e të dhënave.

    Cakto opsionet e nisjes (menyja kryesore "Cilësimet"/"Opsionet e nisjes")

Në dritaren që shfaqet, në fushën "Fjalëkalimi për ndryshimin e cilësimeve", futni fjalëkalimin 150301 dhe klikoni në butonin "Prano".

Specifikoni shtegun për në dosjen JDebet në server dhe klikoni ruaj. Bëjeni bazën e të dhënave aktive dhe mund të filloni punën.

Artikujt kryesorë të lidhur