Nisja e postgresql nga linja e komandës. Komandat themelore PostgreSQL. Vendosja e llojeve të të dhënave

Përshëndetje të gjithëve, sot dua të bëj një kujtesë të shkurtër për komandat kryesore PostgreSQL. Ju mund të punoni me PosgreSQL si në mënyrë interaktive ashtu edhe nga linja e komandës. Programi është psql. Jam i sigurt se kjo listë do të jetë shumë e dobishme për ju dhe do t'ju kursejë kohë duke kërkuar nëpër burime të ndryshme. Më lejoni t'ju kujtoj se ky është një projekt me burim të hapur, i bazuar në Postgres DBMS, i lëshuar në 1986, ai po zhvillohet nga një grup mbarëbotëror zhvilluesish PGDG, në thelb 5-8 persona, por pavarësisht kësaj, ai po zhvillohet shumë intensivisht. , duke prezantuar funksione të reja dhe duke rregulluar defektet dhe gabimet e vjetra.

Komandat themelore PostgreSQL në modalitetin interaktiv:

  • \connect db_name – lidhuni me bazën e të dhënave të quajtur db_name
  • \du – lista e përdoruesve
  • \dp (ose \z) – lista e tabelave, pamjeve, sekuencave, të drejtave të aksesit në to
  • \di – indekset
  • \ds – sekuenca
  • \dt – lista e tabelave
  • \dt+ - lista e të gjitha tabelave me përshkrime
  • \dt *s* - lista e të gjitha tabelave që përmbajnë s në emër
  • \dv – përfaqësime
  • \dS – tabelat e sistemit
  • \d+ – përshkrimi i tabelës
  • \o – dërgoni rezultatet e pyetjes në një skedar
  • \l – lista e bazave të të dhënave
  • \i – lexoni të dhënat hyrëse nga një skedar
  • \e – hap përmbajtjen aktuale të buferit të kërkesës në redaktues (përveç nëse specifikohet ndryshe në mjedisin e ndryshores EDITOR, vi do të përdoret si parazgjedhje)
  • \d “emri_tabelës” – përshkrimi i tabelës
  • \i ekzekuton një komandë nga një skedar i jashtëm, për shembull \i /my/directory/my.sql
  • \pset – komanda për të konfiguruar opsionet e formatimit
  • \echo - shfaq një mesazh
  • \set – Vendos vlerën e një ndryshoreje mjedisi. Pa parametra, shfaq një listë të ndryshoreve aktuale (\unset – fshin).
  • \? – referencë psql
  • \help – referencë SQL
  • \q (ose Ctrl+D) – dilni nga programi

Puna me PostgreSQL nga linja e komandës:

  • -c (ose –command) – ekzekutoni një komandë SQL pa kaluar në modalitetin interaktiv
  • -f file.sql - ekzekutimi i komandave nga skedari file.sql
  • -l (ose –list) – shfaq një listë të bazave të të dhënave të disponueshme
  • -U (ose -username) - specifikoni emrin e përdoruesit (për shembull postgres)
  • -W (ose –password) – kërkesa për fjalëkalim
  • -d dbname - lidheni me bazën e të dhënave dbname
  • -h – emri i hostit (serveri)
  • -s - mënyra hap pas hapi, domethënë do t'ju duhet të konfirmoni të gjitha komandat
  • –S – modaliteti me një linjë, domethënë kalimi në linjë e re do të ekzekutojë pyetjen (heq qafe; në fund të konstruksionit SQL)
  • -V – versioni i PostgreSQL pa hyrë në modalitetin interaktiv

Shembuj:

psql -U postgres -d dbname -c "KRIJO TABELA my(some_id serial PRIMARY KEY, some_text text);" - ekzekutimi i një komande në bazën e të dhënave dbname.

psql -d dbname -H -c “SELECT * FROM my” -o my.html - nxjerr rezultatin e pyetjes në një skedar html.

Shërbimet PosgreSQL (programet):

  • createb dhe dropdb – krijimi dhe heqja e një baze të dhënash (përkatësisht)
  • Creativeuser dhe dropuser – krijimi dhe përdoruesi (përkatësisht)
  • pg_ctl – një program i krijuar për të zgjidhur detyrat e përgjithshme të kontrollit (fillimi, ndalimi, vendosja e parametrave, etj.)
  • postmaster – moduli i serverit PostgreSQL me shumë përdorues (konfigurimi i niveleve të korrigjimit, porteve, drejtorive të të dhënave)
  • initdb – krijimi i grupimeve të reja PostgreSQL
  • initlocation - një program për krijimin e drejtorive për ruajtjen sekondare të bazës së të dhënave
  • vacuumdb – mbështetje fizike dhe analitike e bazës së të dhënave
  • pg_dump – arkivimi dhe rivendosja e të dhënave
  • pg_dumpall - rezervë i gjithë grupi PostgreSQL
  • pg_restore – restaurimi i bazës së të dhënave nga arkivat (.tar, .tar.gz)

Shembuj të krijimit të kopjeve rezervë:

Krijimi i një kopje rezervë të bazës së të dhënave mydb, në formë të ngjeshur

Pg_dump -h localhost -p 5440 -U someuser -F c -b -v -f mydb.backup mydb

Krijimi i një kopje rezervë të bazës së të dhënave mydb, në formën e një skedari teksti të rregullt, duke përfshirë komandën për krijimin e bazës së të dhënave

Pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb

Krijimi i një kopje rezervë të bazës së të dhënave mydb, në formë të ngjeshur, me tabela që përmbajnë pagesa në emër

Pg_dump -h localhost -p 5432 -U someuser -F c -b -v -t *pagesat* -f payment_tables.backup mydb

Hidhni të dhënat nga vetëm një tabelë specifike. Nëse duhet të rezervohen disa tabela, emrat e tabelave renditen duke përdorur çelësin -t për secilën tabelë.

Pg_dump -a -t emri_tabele -f emri i skedarit_emri i bazës së të dhënave

Krijim kopje rezervë me komprimim në gz

Pg_dump -h localhost -O -F p -c -U postgres mydb | gzip -c > mydb.gz

Lista e opsioneve më të përdorura:

  • -h host - host, nëse nuk specifikohet atëherë përdoret localhost ose vlera nga ndryshorja e mjedisit PGHOST.
  • -p port - port; nëse nuk specifikohet, përdoret 5432 ose vlera nga ndryshorja e mjedisit PGPORT.
  • -u - përdorues, nëse nuk specifikohet, përdoret përdoruesi aktual, vlera mund të specifikohet gjithashtu në variablin e mjedisit PGUSER.
  • -a, -vetëm të dhëna - hedh vetëm të dhënat; si parazgjedhje, të dhënat dhe skema ruhen.
  • -b - përfshini objekte të mëdha (blog) në hale.
  • -s, -schema-only - hedh vetëm skemën.
  • -C, -create - shton një komandë për të krijuar një bazë të dhënash.
  • -c - shton komanda për fshirjen (heqjen) e objekteve (tabelat, pamjet, etj.).
  • -O - ​​mos shtoni komanda për të vendosur pronarin e një objekti (tabela, pamje, etj.).
  • -F, -format (c|t|p) - hidhni formatin e daljes, me porosi, tar ose tekst të thjeshtë.
  • -t, -table=TABLE - specifikoni një tabelë specifike për deponinë.
  • -v, -verbose - dalje informacion i detajuar.
  • -D, -atribute-inserts - dump duke përdorur komandën INSERT me një listë të emrave të pronave.

Bëni kopje rezervë të të gjitha bazave të të dhënave duke përdorur komandën pg_dumpall.

Pg_dumpall > të gjitha.sql

Rivendosja e tabelave nga kopjet rezervë:

psql - rivendosja e kopjeve rezervë që ruhen në mënyrë të rregullt skedar teksti(Teksti i thjeshtë);
pg_restore - rivendosja e kopjeve rezervë të ngjeshur (tar);

Rivendosja e një kopje rezervë të tërë duke injoruar gabimet

Psql -h localhost -U someuser -d dbname -f mydb.sql

Rivendosja e një kopje rezervë të tërë, duke u ndalur në gabimin e parë

Psql -h localhost -U someuser -set ON_ERROR_STOP=on -f mydb.sql

Për të rivendosur nga një arkiv tar, së pari duhet të krijojmë një bazë të dhënash duke përdorur CREATE DATABASE mydb; (nëse opsioni -C nuk ishte specifikuar gjatë krijimit të kopjes rezervë) dhe rivendosni

Pg_restore -dbname=mydb -jobs=4 -verbose mydb.backup

Rivendosja e një kopje rezervë të bazës së të dhënave të ngjeshur me gz

psql -U postgres -d mydb -f mydb

Unë mendoj se baza e të dhënave postgresql tani do të jetë më e kuptueshme për ju. Shpresoj se kjo listë e komandave PostgreSQL ishte e dobishme për ju.

Përpara se dikush të mund të hyjë në bazën e të dhënave, ju duhet të nisni serverin e bazës së të dhënave. Programi i serverit quhet postgres. Ky program duhet të dijë se ku t'i gjejë të dhënat që i nevojiten për të punuar. Për ta bërë këtë, përdorni opsionin -D. Pra, mënyra më e lehtë për të nisur serverin është:

$ postgres -D /usr/local/pgsql/data

Në këtë rast serveri do të niset si proces aktiv(jo në sfond). Kjo duhet të bëhet nga një llogari përdoruesi PostgreSQL. Pa opsionin -D, serveri do të përpiqet të kërkojë të dhënat në drejtori nga ndryshorja e mjedisit PGDATA. Nëse kjo variabël nuk është e pranishme, atëherë serveri nuk do të fillojë.

Zakonisht është shumë më i përshtatshëm për të drejtuar serverin në sfond. Për ta bërë këtë, përdorni sintaksën normale të guaskës Unix:

$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &

Është shumë e rëndësishme të ruani daljen e serverit dhe daljen e gabimeve diku, siç tregohet më sipër. Kjo do të ndihmojë në diagnostikimin e problemeve. (Shih seksionin 23.3 për informacion mbi përpunimin e skedarëve të regjistrit.)

Programi postgres pranon gjithashtu opsionet e linjës së komandës. Kjo diskutohet më në detaje në faqen e postgres man dhe në kapitullin 18.

Sidoqoftë, këto komanda të guaskës mund të mërziten shpejt. Prandaj, ekziston një program mbështjellës pg_ctl, i cili ju lejon të bëni të njëjtën gjë, por shumë më e thjeshtë. Për shembull

pg_ctl start -l log file

Në mënyrë tipike ju duhet të filloni serverin e bazës së të dhënave kur nisni kompjuterin tuaj. Skriptet e ekzekutimit automatik varen nga sistemi. Mund të gjeni disa opsione në direktorinë kontribut/start-scripts. Instalimi i tyre mund të kërkojë të drejtat e superpërdoruesit.

Sisteme të ndryshme kanë kushte të ndryshme për nisjen e demonit në boot. Shumë sisteme kanë një skedar /etc/rc.local ose /etc/rc.d/rc.local. Sisteme të tjera përdorin direktoritë init.d ose rc.d. Sidoqoftë, serveri duhet të ekzekutohet si përdorues i PostgreSQL, dhe jo në emër superpërdorues ose një përdorues tjetër. Pra, ndoshta duhet të përdorni këtë formë të komandës su -c "..." postgres. Për shembull:

su -c "pg_ctl start -D /usr/local/pgsql/data -l serverlog" postgres

Këtu janë disa supozime për OS të ndryshëm (Në çdo rast, sigurohuni që të specifikoni dosjen e saktë të instalimit dhe emrin e përdoruesit):

  • FreeBSD shikoni skedarin /contrib/start-scripts/freebsd në dosjen burimore
  • OpenBSD shtoni rreshtat e mëposhtëm në /etc/rc.local
nëse [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres]; pastaj su - -c "/usr/local/pgsql/bin/pg_ctl start -l /var/postgresql/log -s" postgres echo -n "postgresql" fi
  • Linux shtoni
  • /usr/local/pgsql/bin/pg_ctl start -l log file -D /usr/local/pgsql/data
  • NetBSD përdorni ose qasjen FreeBSD ose Linux, në varësi të preferencës
  • Solaris krijoni një skedar të quajtur /etc/init.d/postgresql me rreshtin e mëposhtëm
  • su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l log file -D /usr/local/pgsql/data"

    Ndërsa serveri po funksionon, PID-i i tij ruhet në postmaster.pid në drejtorinë e të dhënave. Kjo përdoret për të siguruar që shembuj të shumtë të serverëve nuk po funksionojnë në të njëjtën direktori të të dhënave. Mund të përdoret gjithashtu për të ndaluar serverin.

    17.3.1 Gabimet e nisjes së serverit

    Ka disa gabime të zakonshme për shkak të të cilave serveri mund të mos fillojë. Kontrolloni regjistrin e serverit për mesazhe gabimi ose ekzekutoni atë manualisht (pa ridrejtuar daljen standarde ose daljen e gabimit). Më poshtë po shpjegojmë disa nga mesazhet më të zakonshme të gabimit:

    LOG: nuk mund të lidhej priza IPv4: Adresa tashmë është në përdorim

    KUJDES: A është një tjetër drejtues poste që funksionon tashmë në portin 5432? Nëse jo, prisni disa sekonda dhe provoni përsëri.

    FATAL: nuk mund të krijohej foleja e dëgjimit TCP/IP

    Kjo zakonisht do të thotë pikërisht ajo që thotë: Ju po përpiqeni të nisni një server tjetër në të njëjtin port ku një server tjetër po funksionon tashmë. Sidoqoftë, nëse porti nuk është në përdorim, atëherë arsyeja mund të jetë e ndryshme. Për shembull, përpjekja për të nisur një server në një port të rezervuar do të çojë gjithashtu në një gabim të ngjashëm.

    $ postgres -p 666

    LOG: nuk mund të lidhej priza IPv4: Leja u refuzua

    KUJDES: A është një tjetër drejtues poste që funksionon tashmë në portin 666? Nëse jo, prisni disa sekonda dhe provoni përsëri.

    FATAL: nuk mund të krijohej foleja e dëgjimit TCP/IP

    Mesazh si

    FATAL: nuk mund të krijohej segmenti i kujtesës së përbashkët: Argument i pavlefshëm

    DETAJ: Thirrja e sistemit të dështuar ishte shmget (çelësi=5440001, madhësia=4011376640, 03600).

    zakonisht do të thotë që kufiri i kujtesës së përbashkët të kernelit është më i vogël se ai që po përpiqet të krijojë hapësira e punës PostgreSQL (4011376640 bajt në shembullin tonë). Ose mund të nënkuptojë që kerneli juaj nuk është i konfiguruar për të mbështetur memorien e përbashkët të stilit System-V. Si një "patericë" mund të provoni të filloni serverin me më pak buffer (). Përfundimisht do të dëshironi të rikonfiguroni kernelin për të rritur sasinë e lejuar të kujtesës së përbashkët. Për më tepër, mund ta shihni këtë mesazh kur përpiqeni të ekzekutoni shembuj të shumë serverëve në të njëjtën makinë nëse kërkesat e tyre totale të memories tejkalojnë kufijtë e kernelit.

    Gabim si

    FATAL: nuk mundi të krijonte semaforë: Nuk ka mbetur hapësirë ​​në pajisje

    DETAJ: Thirrja e sistemit të dështuar ishte semget(5440126, 17, 03600).

    Jo do të thotë që ju ka mbaruar hapësira në disk. Kjo do të thotë që kufiri i kernelit në numrin e semaforëve të Sistemit V është më i vogël se sa PostgreSQL dëshiron të krijojë. Ashtu si në rastin e mëparshëm, ju mund të përdorni "patericën" dhe të filloni serverin me një numër të reduktuar lidhjesh të lejuara (max_connections), por në fund ju ende do të rikonfiguroni kernelin tuaj.

    Nëse merrni gabimin " thirrje sistemi ilegale", atëherë me shumë mundësi memoria e përbashkët dhe semaforët nuk mbështeten fare nga kerneli juaj. Në këtë rast, opsioni juaj i vetëm është të rikonfiguroni kernelin për të mundësuar mbështetjen për këto veçori.

    17.3.2 Probleme me lidhjen e klientit

    Megjithëse gabimet e lidhjes nga ana e klientit kanë shkaqe të ndryshme dhe varen nga aplikacioni specifik, megjithatë, disa prej tyre lidhen drejtpërdrejt me nëse serveri po funksionon. Gabimet e tjera nga ato të listuara më poshtë duhet të zgjidhen me aplikacionin specifik.

    psql: nuk mund të lidhej me serverin: Lidhja u refuzua

    A funksionon serveri në host "server.joe.com" dhe po pranon

    Lidhjet TCP/IP në portin 5432?

    Ky është gabimi standard "Nuk mund ta gjej serverin me të cilin duhet të flas". Është i ngjashëm me gabimin e mësipërm në lidhje me TCP/IP. Me shumë mundësi ata kanë harruar të konfigurojnë serverin për të pranuar lidhjet TCP/IP.

    Për më tepër, mund ta shihni këtë gabim kur përpiqeni të lidheni me server lokal përmes prizave unix:

    psql: nuk mund të lidhej me serverin: Nuk ka skedar ose drejtori të tillë

    A funksionon serveri lokalisht dhe po pranon

    lidhjet në folenë e domenit Unix "/tmp/.s.PGSQL.5432"?

    Nga rreshti i fundit mund të kontrolloni që klienti po përpiqet të lidhet në vendin e duhur. Nëse vërtet nuk ka asnjë server atje, atëherë mesazhi i gabimit nga kerneli do të jetë ose Lidhja u refuzua ose Asnjë skedar apo drejtori i tillë si në shembullin tonë. (Është e rëndësishme të theksohet se Lidhja u refuzua në këtë rast nuk do të thotë që serveri ka marrë kërkesën tuaj për lidhje dhe e ka refuzuar atë. Kjo situatë do të rezultojë në një mesazh tjetër gabimi, siç tregohet në seksionin 19.4). Mesazhe të tjera gabimi si Koha e lidhjes mbaroi mund të tregojë probleme më serioze siç janë vonesat në rrjet.

    Në këtë artikull do të tregoj 15 nga më komandat e dobishme Për ngarje postgreSQL.

    1. Si të ndryshoni fjalëkalimin root në PostgreSQL?

    $ /usr/local/pgsql/bin/psql postgres postgres Fjalëkalimi: (fjalëkalimi i vjetër) # NDRYSHO SHFRYTËZuesin postgres ME PASSWORD 'tmppassword'; $ /usr/local/pgsql/bin/psql postgres postgres Fjalëkalimi: (tmppassword)

    Ndryshimi i fjalëkalimit për një përdorues të rregullt ndodh në të njëjtën mënyrë. Përdoruesi rrënjë mund të ndryshojë fjalëkalimin për çdo përdorues.

    # Ndrysho emrin e përdoruesit ME PASSWORD 'tmppassword';

    2. Si të instaloni PostgreSQL në autostart?

    $ su - rrënjë # tar xvfz postgresql-8.3.7.tar.gz # cd postgresql-8.3.7 # cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql # chmod a+x / etj/rc.d/init.d/postgresql

    3. Kontrolloni statusin e serverit

    $ statusi /etc/init.d/postgresql Fjalëkalimi: pg_ctl: serveri po funksionon (PID: 6171) /usr/local/pgsql/bin/postgres “-D” “/usr/local/pgsql/data” [ Komentoni: Ky mesazh tregon që serveri po funksionon dhe po punon normalisht] $ statusi /etc/init.d/postgresql Fjalëkalimi: pg_ctl: asnjë server nuk funksionon [ Komentoni: Ky mesazh tregon që serveri nuk po funksionon]

    4. Si të filloni, ndaloni, rinisni PostgreSQL?

    # ndalimi i shërbimit postgresql Ndalimi i PostgreSQL: serveri u ndal në rregull # fillimi i shërbimit postgresql Duke filluar PostgreSQL: ok # rinisja e shërbimit postgresql Rinisja e PostgreSQL: serveri u ndal në rregull

    5. Si mund të shoh se cili version i PostgreSQL po ekzekutohet?

    $ Testi /usr/local/pgsql/bin/psql Mirë se vini në psql 8.3.7, terminali interaktiv PostgreSQL. Lloji: \e drejta e autorit për termat e shpërndarjes \h për ndihmë me komandat SQL \? për ndihmë me komandat psql \g ose përfundoni me pikëpresje për të ekzekutuar pyetjen \q për të dalë nga testi=# zgjidhni versionin (); version —————————————————————————————————— PostgreSQL 8.3.7 në i686-pc-linux-gnu, përpiluar nga GCC gcc (GCC) 4.1.2 20071124 (Red Hat 4.1.2-42) (1 rresht) test=#

    5. Si të krijoni një përdorues në PostgreSQL?

    Ka dy mënyra për këtë..

    Metoda 1: Ne krijojmë një përdorues duke përdorur guaskën PSQL duke përdorur komandën CREATE USER.

    # KRIJO RAMESH E PËRDORËSVE ME fjalëkalimin 'tmppassword'; KRIJO ROLI

    Metoda2: Ne krijojmë një përdorues duke përdorur komandën createuser shell.

    $ /usr/local/pgsql/bin/createuser sathiya A do të jetë roli i ri një superpërdorues? (y/n) n A do të lejohet roli i ri të krijojë bazat e të dhënave? (y/n) n A do të lejohet roli i ri të krijojë më shumë role të reja? (y/n) n KRIJO ROLI

    6. Si të krijoni një bazë të dhënash në PostgreSQL?

    Ka 2 metoda për këtë.

    Metoda1: Ne krijojmë një bazë të dhënash përmes një guaskë PSQL duke përdorur komandën CREATE DATABASE.

    # KRIJO BAZA E TË DHËNAVE mydb ME PRONAR ramesh; KRIJON BAZA E TË DHËNAVE

    Metoda2: Ne përdorim komandën createb.

    $ /usr/local/pgsql/bin/createdb mydb -O ramesh KRIJON BAZA E TË DHËNAVE

    7. A marrim një listë të të gjitha bazave të të dhënave në Postgresql?

    # \l Lista e bazave të të dhënave Emri | Pronari | Kodimi ———-+———-+———- kopje rezervë | postgres | UTF8 mydb | ramesh | UTF8 postgres | postgres | Modeli UTF80 | postgres | Shablloni UTF81 | postgres | UTF8

    8. Si të fshini një bazë të dhënash në PostgreSQL?

    # \l Lista e bazave të të dhënave Emri | Pronari | Kodimi ———-+———-+———- kopje rezervë | postgres | UTF8 mydb | ramesh | UTF8 postgres | postgres | Modeli UTF80 | postgres | Shablloni UTF81 | postgres | UTF8# DOP BAZA E TË DHËNAVE mydb; HIQ BAZA E TË DHËNAVE

    9. Përdorni ndihmën e integruar për komandat

    Ekipi \? do të shfaqë një linjë ndihme për komandën PSQL. \h CREATE do të tregojë ndihmë për të gjitha komandat që fillojnë me CREATE.

    # \? # \h KRIJO # \h KRIJONI INDEKS

    10. Si të merrni një listë të të gjitha tabelave në një bazë të dhënash të caktuar në Postgresql?

    # \d

    Për një bazë të dhënash të zbrazët, do të merrni mesazhin "Nuk u gjetën marrëdhënie".

    11. Si mund ta zbuloj kohën e ekzekutimit të kërkesës?

    # \timing - pas ekzekutimit të kësaj komande, çdo kërkesë pasuese do të tregojë kohën e ekzekutimit.

    # \koha Koha është aktive. # SELECT * nga pg_catalog.pg_attribute; Koha: 9.583 ms

    12. Si të kopjoni dhe rivendosni bazat e të dhënave dhe tabelat në PostgreSQL?

    Kjo pyetje është mjaft e madhe dhe do ta publikoj më vonë në një artikull të veçantë.

    13. Si të shikoni listën e funksioneve të disponueshme në PostgreSQL?

    Për të marrë një listë të funksioneve të disponueshme, thoni \df+

    # \df # \df+

    14. Si të redaktoni një pyetje PostgreSQL në redaktues?

    # \e

    \e do të hapë një redaktues ku mund të redaktoni pyetjen dhe ta ruani atë.

    15. Ku mund ta gjej skedarin e historisë postgreSQL?

    Ngjashëm me skedarin ~/.bash_history, postgreSQL ruan të gjitha komandat sql në skedarin ~/.psql_history.

    $ cat ~/.psql_histori ndryshimi i postgresit të përdoruesit me fjalëkalimin 'tmppassword'; \h ndryshon versionin e zgjedhur nga përdoruesi(); krijoni ramesh të përdoruesit me fjalëkalimin 'tmppassword'; \timing zgjidhni * nga pg_catalog.pg_attribute;

    Përshkruhet konfigurimi minimal i PostgreSQL në Windows pa nevojën për të instaluar një bazë të dhënash. Nisur përmes skedarit bat. Mund të funksionojë nga një flash drive ose një hard disk portativ.

    Shkarkoni binarët për Windows

    Shkoni në faqen e internetit të PosgreSQL në seksionin Shkarko/Windows dhe klikoni në lidhjen arkivi zip në paragrafin për Përdorues të avancuar. Zgjidhni versionin e dëshiruar dhe shkoni përpara.

    Ne nxjerrim skedarët nga arkivi në drejtorinë e dëshiruar, për shembull:
    D:\psql

    Ekzekutimi i PostgreSQL pa instalim

    Skripti Bat për të ekzekutuar në Windows pa instalim:


    @ECHO ON
    @REM Vendos variablat e mjedisit për PostgreSQL
    @SET PATH=”%CD%\bin”;%PATH%
    @SET PGDATA=%CD%\data
    @SET PGDATABASE=postgres
    @SET PGUSER=postgres
    @SET PGPORT=5432
    @REM Krijo DB të re me kodim rus vetëm në ekzekutimin e parë
    @rem %CD%\bin\initdb -U postgres -A trust -E UTF8 —locale=russian_russia
    @REM Krijo DB të re me kodim anglisht vetëm në ekzekutimin e parë
    %CD%\bin\initdb -U postgres -A trust -E UTF8 —locale=american_usa
    @%CD%\bin\pg_ctl -D Fillimi i skedarit log %CD%/data -l
    @ECHO Shtypni Enter për të ndaluar serverin
    @pauzë
    @%CD%\bin\pg_ctl -D %CD%/ndalimi i të dhënave

    Ne e vendosim skriptin në rrënjën e drejtorisë ku ndodhet PostgreSQL, për shembull:
    D:\psql\pg.bat

    Po përditëson versionin PostgreSQL

    Nëse keni nevojë të përditësoni versionin tuaj PostgreSQL, duhet të ndërmerrni disa hapa të thjeshtë. Shkarkoni arkivin nga version i ri, ekstraktoni atë në një drejtori të veçantë dhe inicializoni bazën e të dhënave. Përshkruar më sipër.

    Transferimi i të dhënave përshkruhet në detaje. Me pak fjalë, ju duhet të ekzekutoni skriptin nga drejtoria e koshit të versionit më të fundit:

    cd D:\psql-new\bin
    pg_upgrade.exe --username=postgres
    --old-datadir "D:\pgsql-old\data"
    --new-datadir "D:\pgsql-new\data"
    --old-bindir "D:\pgsql-old\bin"
    --new-bindir "D:\pgsql-new\bin"

    Ndryshimi i vendndodhjes së PostgreSQL

    Nëse nuk ju pëlqejnë mesazhet e përkthyera dhe ndërfaqja pgAdmin3, atëherë duhet të vendosni kodimin e dëshiruar të bazës së të dhënave kur e nisni për herë të parë.

    Megjithatë, në Instalimi i Windows kodimi i ndryshëm nga ai i sistemit është një mister që do të duhet të zgjidhet. Sistemi nuk i kupton emrat standardë të kodimit dhe ato që ai kupton nuk janë aq të lehta për t'u gjetur.

    Për të vendosur kodimin " en_US.UTF-8american_usa» komanda:
    initdb -U postgres -A trust -E UTF8 —locale=american_usa

    Për të vendosur kodimin " ru_RU.UTF-8"është e nevojshme të inicializosh bazën e të dhënave me vendndodhjen" rusisht_rusi» komanda:
    initdb -U postgres -A trust -E UTF8 —locale=russian_russia

    Për kodime të tjera, duhet të zgjidhni vetë kombinimet duke përdorur burimet e mëposhtme në MSDN:

    Komandat e dobishme

    Më poshtë janë pyetjet SQL që duhet të futen përmes linjës së komandës PostgreSQL. E nisim me komandën:
    D:\pgsql\bin\psql —emri i përdoruesit=postgres

    Ose përmes GUI pgAdmin3:
    D:\pgsql\bin\pgAdmin3.exe

    Kontrolli i versionit:
    zgjidhni versionin ();

    Proceset aktuale:
    ZGJIDHni emrin e të dhënave,pid,pyetës FROM pg_stat_activity;

    Krijimi i bazës së të dhënave:
    KRIJO BAZA E TË DHËNAVE test_bazë;

    Krijimi dhe ndryshimi i një përdoruesi:
    KRIJO zhvilluesi i përdoruesit ME fjalëkalimin '123456';
    ALTER USER zhvillues ME fjalëkalimin '654321';

    Bëni superpërdorues:
    ALTER ROLE zhvilluesi SUPERUSER;

    Të drejtat e përdoruesit:
    DHËNON TË GJITHA privilegjet NË BAZËN E TË DHËNAVE test_baza e të dhënave për zhvilluesin;

    Importi nga deponia:
    gunzip -c test_database.sql.gz| psql test_baza e të dhënave

    Python

    gunzip -c test_database.sql.gz| psql test_baza e të dhënave-U përdorues-h localhost

    gunzip-c< em >test_baza e të dhënave. sql. gz< / em >| psql< em >test_baza e të dhënave< / em >- U< em >përdorues< / em >- h< em >localhost< / em >


    psql test_baza e të dhënave test_përdoruesi< dump_file.sql

    Krijimi i një tabele:

    Python

    CREATE SEQUENCE post_ids; (