Windowsi kaudu postgresqliga ühendamine. PostgreSQL-i andmebaasi ühendamine. Andmebaasi haldamine

PostgreSQL on platvormideülene avatud objektiga relatsiooniline DBMS lähtekood. See artikkel näitab teile, kuidas PostgreSQL-i installida Ubuntu Linux, looge sellega ühenduse loomine ja käivitage paar lihtsat SQL-päringut, samuti kuidas varukoopiat seadistada.

PostgreSQL 9.2 installimiseks Ubuntu 12.10-sse käivitage järgmised käsud:

sudo apt-add-repository ppa:pitti/ postgresql
sudo apt-get värskendus
sudo apt-get install postgresql-9.2

Proovime töötada DBMS-iga läbi kesta:

sudo -u postgres psql

Loome testandmebaasi ja testkasutaja:

CREATE DATABAAS test_andmebaas;
LOO KASUTAJA test_kasutaja parooliga "qwerty" ;
ANNA KÕIK ANDMEBAASIS test_andmebaas kasutajale test_user;

Shellist väljumiseks sisestage käsk \q .

Proovime nüüd loodud andmebaasiga testi_kasutaja nimel töötada:

psql -h localhost test_database test_user

Loome uue tabeli:

CREATE SEQUENCE user_ids;
CREATE TABLE kasutajad (
id TÄISARV PRIMARY KEY DEFAULT NEXTVAL ("user_ids") ,
logi sisse CHAR(64) ,
parool CHAR(64));

Pange tähele, et erinevalt mõnest teisest DBMS-ist pole PostgreSQL-il atribuudiga auto_increment veerge. Selle asemel kasutab Postgres järjestusi. Peal Sel hetkel Piisab, kui tead, et funktsiooni nextval abil saame antud jada jaoks unikaalsed numbrid:

SELECT NEXTVAL ("kasutaja_id") ;

Määrates kasutajate tabeli ID-välja vaikeväärtuseks NEXTVAL("kasutaja_id"), oleme saavutanud sama efekti, mille annab auto_increment. Tabelisse uusi kirjeid lisades ei pea me id-d määrama, sest unikaalne id genereeritakse automaatselt. Sama järjestust võivad kasutada mitu tabelit. Nii saame tagada, et nende tabelite mõne välja väärtused ei kattu. Selles mõttes on jadad paindlikumad kui auto_increment.

Täpselt sama tabeli saab luua vaid ühe käsuga:

LOO TABLE kasutajad2 (
id SERIAL PRIMARY KEY ,
logi sisse CHAR(64) ,
parool CHAR(64));

Sel juhul luuakse ID-välja jada automaatselt.

Nüüd, kasutades käsku \d, näete kõigi loendit saadaval olevad lauad, ja kasutades \d kasutajat – vaata kasutajate tabeli kirjeldust. Kui te ei saa otsitavat teavet, proovige \d+ asemel klahvi \d+. Andmebaaside loendi saate hankida käsuga \l ja lülituda konkreetsele andmebaasile käsuga \c dbname. Käsu abi kuvamiseks öelge \? .

Oluline on märkida, et PostgreSQL teisendab tabelite ja veergude nimed vaikimisi väiketähtedeks. Kui te seda käitumist ei soovi, võite kasutada jutumärke:

CREATE TABLE "otherTable" ("someValue" VARCHAR (64 ) ) ;

Teine PostgreSQL-i funktsioon, mis võib selle DBMS-iga töö alustamisel raskusi tekitada, on nn skeemid. Skeem on midagi tabelite nimeruumi sarnast, näiteks andmebaasi sees olevate tabelitega kataloog.

Skeemi loomine:

LOO SCHEMA broneeringuid;

Lülitu skeemile:

SET search_path broneeringuteni;

Olemasolevate skeemide loendit saate vaadata käsu \dn abil. Vaikimisi skeemi nimi on avalik. Põhimõtteliselt saab PostgreSQL-i edukalt kasutada ka ilma skeemide olemasolust teadmata. Kuid pärandkoodiga töötamisel ja mõnel juhul võib skeemide tundmine olla väga kasulik.

Vastasel juhul ei erine PostgreSQL-iga töötamine palju tööst mis tahes muu relatsioonilise DBMS-iga:

SISESTAGE kasutajaid (sisselogimine, parool)
VÄÄRTUSED ("afiskon" , "123456" ) ;
SELECT * FROM kasutajad;

Kui proovite nüüd mõnest teisest masinast Postgresiga ühendust luua, ei õnnestu:

psql -h 192.168.0.1 test_andmebaas test_user

Psql: serveriga ei saa ühendust luua: Ühenduse loomine keelduti
Kas server töötab hostis "192.168.0.1" ja nõustub
TCP/IP-ühendused pordis 5432?

Selle parandamiseks lisage rida:

listen_addresses = "localhost, 192.168.0.1"

...ka faili /etc/postgresql/9.2/main/postgresql.conf.

0

Olen ummikus. Meil on postgres 9.2 andmebaas, mida oleme juba mõnda aega kasutanud. Nüüd peame saama sellega ühenduse luua väljaspool meie võrku.

Seega konfigureerime välise IP-aadressi ja testime, et saaksime telneti kaudu kaughostist pordiga 5432 ühenduse luua. Nii et see tõestab seda võrguühendus töötab, tulemüürid jne. Kõik hea.

Kui proovin ühendust luua:
PSQL -h db.host.com -d dbname -p 5432 -U kasutaja

Ma tulen tagasi Psql: server sulges ühenduse ootamatult.

Ma kontrollisin seda
listen_addresses = "*" on määratud failis postgresql.conf

Ja failis pg_hba.conf on meil rida, mis loeb (ainult testimise eesmärgil)
host kõik 0.0.0.0/0 md5

Ja ma laadisin andmebaasi uuesti, et testida selle valitud muudatusi.
Seega peaks see võimaldama ühendusi mis tahes allikast.

Andmebaasiserveris on psql versioon 9.2.14 ja kliendil 9.2.13.

On ettepanekuid või ideid?

  • 1 vastus
  • Sorteerimine:

    Tegevus

1

Lisateabe saamiseks tahaksin proovida mõnda asja:

    Postgres tail logib sisse serverisse, et näha, mis seal ühenduse loomisel toimub.

    Käivitage psql --version, et veenduda, et see vastab enam-vähem serveri versioonile. (Näen, et olete seda juba teinud, kuid jätan selle siia järglastele.)

    Käivitage strace psql..., et näha, kui kaugele see ebaõnnestub.

Minu jaoks tundub see endiselt võrguprobleemina. Mis on telneti käsk, millega töötate? "Väline IP" kõlab samamoodi nagu AWS-i puhul. Seaded kaugjuurdepääs VPC-le kulub palju samme. Kas teil on muid väljapoole avatud teenuseid, mis töötavad?

Samuti saate tõrkeotsingut teha, sulgedes Postgresi serveri ja kasutades 5432 kuulamiseks nc-d. Seejärel tehke telnet ja vaadake, kas saate andmeid edasi-tagasi saata.

1

Paul, tänan soovituste eest. Tegin venituse ja kontrollisin versioone. Ja sul oli õigus, proovisin AWS-i kaudu ühendust luua. Selgub, et see oli tasand, mida ma koormuse tasakaalustajas kasutasin, et võimaldada juurdepääsu ainult IP-2 IP-vahemikele, mida AWS avaldab. Kui ma irule keelasin, sain kohe ühenduse luua. Nii et see peab olema sürreaalne loogika, kuna kontrollisin oma EC2 eksemplari avalikku IP-aadressi ja see oli tõepoolest CIDR-teatise kaudu irules loetletud. -

Tähelepanu : Kui töötate Windows OS-iga ja pole veel PostgreSQL-i ja Debit Plus V12 installinud, saate allalaadimislehelt alla laadida Debit Plus V12 komplekti koos eelinstallitud PostgreSQL DBMS-i ja ühendatud andmebaasiga (Ukraina jaoks mõeldud põhikonfiguratsiooniga) . Vastasel juhul peate esmalt installima PostgreSQL DBMS-i ja tarkvarapakett“Debit Plus V12”, mille järel saate neid juhiseid järgides ühenduse seadistada ja PostgreSQL-i andmebaasi importida.

PostgreSQL-i andmebaasi ühendamiseks peate tegema järgmised toimingud.

    Käivitage "Debit Plus V12" ja lisage uus alus (kontekstimenüü"Lisa uus")

    Jätke linnuke kasti "Lisa loendisse olemasolev".

"DBMS" - POSTGRE.

"Andmebaasiserver" - lokaalne host.

"Andmebaasi nimi" - määrake andmebaasi nimi PostgreSQL DBMS-ist väikeste ladina tähtedega (väikesed tähed).

Märge: Tavaliselt kasutatakse ühte alust. Erieesmärkidel saab andmebaasi jagada mitmeks, seejärel peate märkima ruut "Kasuta mitut andmebaasi", klõpsama nuppu "Järgmine" ja märkima "siltide" vastavuse. füüsilised alused. See võib olla vajalik näiteks juhul, kui mitme ettevõtte andmebaasid viitavad samadele kataloogidele (vastaspooled, kirjed jne). Seda juhtumit pikemalt ei käsitleta.

„Seadete kataloog” – määrake PostgreSQL-i andmebaasi sätete tee (drave\DebetPlusV12\base\pgdpbase).

Salvestage muudatused, klõpsates nuppu "Valmis".

    Käivitage pgAdmin (PostgreSQL DBMS-i administraator), lisage server (Fail/Lisa server...) ja lisage uus andmebaas (menüü "New Database...").

Sisestage väljale Host serveri nimi, localhost, täitke ülejäänud väljad vastavalt soovile.

Sisestage väljale "Nimi" andmebaasi nimi (sama, mis sisestati andmebaasiga "Debit Plus V12" ühenduse loomiseks väljale "Server").

    Andmebaasi importimiseks arhiivist kasutage menüüd "Taasta...".

Määrake andmebaasi arhiivi dpbase.bakup tee (drave\DebetPlusV12\base\pgdpbase).

    Saate lisada kasutaja dpadmin, kes on Debit Plus V12 vaikimisi administraator (ilma paroolita).

Määra kõik õigused sellele kasutajale.

Märge : Te ei saa dpadmini kasutajat lisada, siis peate andmebaasi aktiveerimisel sisestama postgresi administraatori nime.

Värskenda andmebaaside loendit (menüü “Värskenda”).

Märge : Kui te ei soovi kasutajale "Superkasutaja" õigusi määrata, siis määrake õigused "Tabelitele" ja "Vaadele". Selleks valige vastav objekt ja valige kontekstimenüüst "Grant Wizard".

Vahekaardil "Valik" klõpsake nuppu "Kontrolli kõiki" ja vahekaardil "Privileegid" märkige "KÕIK" ja klõpsake nuppu "Lisa/Muuda". Salvestage oma muudatused.

    Aktiveerige andmebaasiühenduse seadistus tarkvaras Debit Plus V12 (kontekstimenüü "Tee aktiivseks").

Süsteem küsib andmebaasiga ühenduse loomiseks parooli. Klõpsake nuppu Jah.

Tähelepanu! Kui sellist teadet ei ilmu, alusta andmebaasistruktuuride uuendamist, valides menüükäsu “Tööriistad” / “Andmebaasi struktuuride uuendamine”.

Selle tulemusena ilmub järgmine aken:

Jätke kõik märkeruudud vaikimisi (kõigi andmebaasi tabelite veerus "Reindex" peavad olema linnukesed).

Pärast modifikatsiooni lõpetamist võite alustada tööd.

    Käivitage "Debit Plus V12" ja lisage uus baas (kontekstimenüü "Lisa uus").

    Jätke linnuke väljale „Lisa olemasolev loendisse”:

Esimesele väljale sisestage andmebaasi suvaline nimi (nimi võib igas töötavas arvutis olla erinev).

"DBMS" - POSTGRE.

“Andmebaasiserver” – serveri nimi või IP-aadress.

"Andmebaasiserveri port" - määrake andmebaasiserveri port, vaikimisi on 5432.

"Andmebaasi nimi" - sisestage andmebaasi nimi väikeste ladina tähtedega.

"Andmebaasi skeemi nimi" - dpbase.

Märkige ainult ruut "Kasuta deebet plussi autoriseerimist".

"Seadete kataloog" - määrake PostgreSQL-i andmebaasi sätete tee (võrgutee\DebetPlusV12\base\pgdpbase).

Salvestage muudatused, klõpsates nuppu "Lõpeta", ja seejärel muutke andmebaas aktiivseks.

    Käivitusvalikud (peamenüü "Seaded" / "Käivitusvalikud")

Sisestage ilmuvas aknas väljale "Seadete muutmise parool" parool 150301 ja klõpsake nuppu "Nõustu".

Määrake serveri JDebeti kausta tee ja klõpsake nuppu Salvesta. Tee andmebaas aktiivseks ja saadki tööle asuda.

Teiste kasutajate nimel käskude täitmise korraldamiseks kasutatavas sudo utiliidis on tuvastatud haavatavus (CVE-2019-18634), mis võimaldab teil oma õigusi süsteemis suurendada. Probleem […]

WordPress 5.3 väljalase täiustab ja laiendab WordPress 5.0-s kasutusele võetud plokiredaktorit uue ploki, intuitiivsema suhtluse ja parema juurdepääsetavuse abil. Uued funktsioonid redaktoris […]

Pärast üheksa kuud kestnud arendustööd on saadaval multimeediumipakett FFmpeg 4.2, mis sisaldab rakenduste komplekti ja teekide kogumit mitmesugustes multimeediumivormingutes (salvestamine, teisendamine ja […]

  • Uued funktsioonid sisse Linux Mint 19.2 kaneel

    Linux Mint 19.2 on pikaajaline tugiväljalase, mida toetatakse kuni 2023. aastani. Kaasas on värskendatud tarkvara ning sisaldab täiustusi ja palju uusi […]

  • Linux Mint 19.2 distributsioon avaldati

    Väljaanne esitletud Linuxi levitamine Mint 19.2, Linux Mint 19.x haru teine ​​värskendus, mis põhineb Ubuntu 18.04 LTS paketi baasil ja on toetatud kuni 2023. aastani. Jaotus on täielikult ühilduv [...]

  • Saadaval on uued BIND-teenuse väljalasked, mis sisaldavad veaparandusi ja funktsioonide täiustusi. Uusi väljalaseid saab alla laadida arendaja veebisaidi allalaadimislehelt: […]

    Exim on sõnumiedastusagent (MTA), mis on välja töötatud Cambridge'i ülikoolis kasutamiseks Unixi süsteemid Internetiga ühendatud. Ta on sees tasuta juurdepääs kooskõlas […]

    Pärast peaaegu kaheaastast arendustööd esitletakse ZFS-i versiooni Linux 0.8.0 juurutamist failisüsteem ZFS, mis on pakitud Linuxi kerneli moodulina. Moodulit on testitud Linuxi tuumadega 2.6.32 kuni […]

    Interneti-protokolle ja arhitektuuri arendav IETF (Internet Engineering Task Force) on lõpetanud ACME (Automatic Certificate Management Environment) protokolli jaoks RFC […]

    Kogukonna kontrolli all olev ja kõigile tasuta sertifikaate väljastav mittetulunduslik sertifitseerimisasutus Let’s Encrypt võttis kokku möödunud aasta tulemused ja rääkis 2019. aasta plaanidest. […]