Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • U kontaktu sa
  • Povezivanje na postgresql iz windowsa. Povezivanje PostgreSQL baze podataka

Povezivanje na postgresql iz windowsa. Povezivanje PostgreSQL baze podataka

0

Zapanjen sam. Imamo postgres 9.2 bazu podataka koju koristimo već neko vrijeme. Sada moramo biti u mogućnosti da se povežemo na njega izvan naše mreže.

Tako da konfigurišemo eksternu IP adresu i testiramo da se možemo povezati na port 5432 sa udaljenog hosta preko telneta. Dakle, ovo dokazuje da mrežna veza radi, zaštitni zidovi itd. su dobri.

Kada pokušam da se povežem sa:
PSQL -h db.host.com -d dbname -p 5432 -U korisnik

Vratit ću se Psql: Server je neočekivano prekinuo vezu.

Provjerio sam to
listen_addresses = "*" je postavljeno u postgresql.conf

I u pg_hba.conf imamo red koji glasi (samo u svrhu testiranja)
host sve sve 0.0.0.0/0 md5

I ponovo sam učitali bazu podataka da testiram njene odabrane promjene.
Dakle, ovo bi trebalo omogućiti veze iz bilo kojeg izvora.

Verzija psql na serveru baze podataka je 9.2.14, a na klijentu je 9.2.13.

Ima li nekih prijedloga ili ideja?

  • 1 odgovor
  • sortiranje:

    Aktivnost

1

Želio bih isprobati nekoliko stvari da dobijem više informacija:

    Postgres tail logiraj se na server da vidi šta se tamo dešava kada je povezan.

    Pokrenite psql --version da biste bili sigurni da se više ili manje podudara s verzijom servera. (Vidim da ste ovo već uradili, ali ostaviću to ovde za potomke.)

    Pokrenite strace psql.... da vidite koliko daleko ide do neuspjeha.

Ovo mi i dalje zvuči kao mrežni problem. Koja je telnet komanda sa kojom radite? „Spoljna IP adresa“ zvuči isto kao i na AWS-u. Postavljanje udaljenog pristupa VPC-u zahtijeva mnogo koraka. Imate li još neke druge otvorene usluge koje rade?

Također možete riješiti problem tako što ćete isključiti Postgres server i koristiti nc za slušanje 5432. Zatim telnet i provjerite možete li slati podatke naprijed-nazad.

1

Paul, hvala na prijedlozima. Povukao sam se i provjerio verzije. I bili ste u pravu, pokušao sam da se povežem sa AWS-a. Ispostavilo se da je to bio nivo koji sam koristio u balansatoru opterećenja da dozvoli pristup samo IP-2 IP rasponima koje AWS objavljuje. Kada sam onemogućio irule, mogao sam odmah da se povežem. Dakle, ovo mora da je nadrealna logika jer sam provjerio javni IP moje EC2 instance i zaista je bio naveden u irule putem CIDR obavijesti. -

Sistemska administracija

Ovaj post je kratka instrukcija za početnike, za one koji su prvi put instalirali PostgreSQL. Evo svih informacija koje su vam potrebne da biste započeli sa PostgreSQL-om.

Povezivanje na DBMS

Prva stvar koju treba uraditi je da dobijete pristup PostgreSQL-u, pristup kao superkorisnik.
Postavke provjere autentičnosti nalaze se u datoteci pg_hba.conf.
  1. lokalni svi postgres peerovi
Ova linija označava da se korisnik postgresa može povezati na bilo koju lokalnu PostgreSQL bazu podataka preko utičnice. Nije potrebno unositi lozinku, operativni sistem će prenijeti korisničko ime i ono će se koristiti za autentifikaciju.
Hajde da se povežemo:
  1. $ sudo -u postgres psql postgres postgres
Da biste se mogli povezati putem mreže, morate dodati liniju u pg_hdba.conf:
  1. # TIPI BAZA PODATAKA METOD KORISNIČKE ADRESE
  2. hostssl sve sve 0.0.0.0/0 md5
Metoda autentifikacije md5 znači da ćete morati unijeti lozinku za povezivanje. Ovo nije baš zgodno ako često koristite psql konzolu. Ako želite automatizirati neke radnje, loša vijest je da psql ne prihvaća lozinku kao argument. Postoje dva načina za rješavanje ovih problema: postavljanje odgovarajuće varijable okruženja i pohranjivanje lozinke u posebnu .pgpass datoteku.

Postavljanje varijable okruženja PGPASSWORD

Odmah ću reći da je bolje ne koristiti ovu metodu, jer neki operativni sistemi dopuštaju običnim korisnicima da vide varijable okruženja pomoću ps. Ali ako želite, trebate napisati u terminalu:
  1. izvoz PGPASSWORD=moja lozinka
Varijabla će biti dostupna u trenutnoj sesiji. Ako trebate postaviti varijablu za sve sesije, onda morate dodati red iz primjera u datoteku .bashrc ili .bash_profile

Pohranjivanje lozinke u .pgpass datoteku

Ako govorimo o Linuxu, onda bi se datoteka trebala nalaziti u $HOME (/home/username). Samo vlasnik (0600) mora imati prava pisanja i čitanja. Potrebno je da u datoteku upišete ovakve redove:
  1. ime hosta:port:baza podataka:korisničko ime:lozinka
Možete napisati “*” u prva četiri polja, što će značiti da nema filtriranja (potpuni izbor).

Dobivanje informacija za pomoć

\? - će prikazati sve dostupne komande zajedno sa njihovim kratkim opisom,
\h - prikazaće listu svih dostupnih upita,
\h CREATE - pružit će pomoć za određeni zahtjev.

Upravljanje korisnicima DBMS-a

Kako doći do liste korisnika PostgreSQL-a? Ili možete postaviti upit za pg_user tablicu.
  1. SELECT * FROM pg_user ;

Kreiranje novog PostgreSQL korisnika

Iz psql ljuske, ovo se može učiniti pomoću naredbe CREATE.
  1. CREATE USER username SA lozinkom "password" ;
Ili možete koristiti terminal.
  1. createuser -S -D -R -P korisničko ime
Od vas će biti zatraženo da unesete lozinku.

Promjena korisničke lozinke

  1. IZMIJENI KORISNIČKO korisničko ime WITH PASSWORD "password" ;

Promjena korisničkih uloga

Da biste korisniku dali dozvolu za kreiranje baza podataka, pokrenite sljedeći upit:
  1. ALTER ROLE korisničko ime WITH CREATEDB ;

Upravljanje bazom podataka

Prikazivanje liste baza podataka u psql terminalu: Isto sa Linux terminala:
  1. psql -l
Kreiranje baze podataka iz psql-a (PostgreSQL terminal)
  1. CREATE DATABASE dbname OWNER dbadmin ;
Kreiranje nove baze podataka pomoću terminala:
  1. createdb -O korisničko ime dbname;

Postavljanje prava pristupa bazi podataka

Ako je korisnik vlasnik baze podataka, onda ima sva prava. Ali ako želite dati pristup drugom korisniku, to možete učiniti pomoću naredbe GRANT. Upit u nastavku će omogućiti korisniku da se poveže na bazu podataka. Ali ne zaboravite na konfiguracijsku datoteku pg_hba.conf, ona također mora imati odgovarajuće dozvole za povezivanje.
  1. ODOBRITE POVEZIVANJE NA BAZI PODATAKA dbname TO dbadmin ;

PostgreSQL je open-source, cross-platform objektno-relacijski DBMS. U ovom članku ćete naučiti kako instalirati PostgreSQL na Ubuntu Linux, povezati se s njim i pokrenuti nekoliko jednostavnih SQL upita, kao i kako postaviti sigurnosne kopije.

Da biste instalirali PostgreSQL 9.2 na Ubuntu 12.10, pokrenite sljedeće naredbe:

sudo apt-add-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get install postgresql-9.2

Pokušajmo raditi sa DBMS-om kroz ljusku:

sudo -u postgres psql

Kreirajmo testnu bazu podataka i test korisnika:

CREATE DATABASE test_baza podataka;
KREIRAJTE KORISNIKA test_user SA lozinkom "qwerty" ;
ODOBRITE SVE U BAZI PODATAKA test_baza podataka test_user;

Da biste izašli iz ljuske, unesite naredbu \q.

Sada pokušajmo da radimo sa kreiranom bazom podataka u ime test_user:

psql -h localhost test_baze podataka test_user

Kreirajmo novu tabelu:

CREATE SEQUENCE user_ids;
CREATE TABLE korisnika (
id INTEGER PRIMARNI KLJUČ ZADANO SLJEDEĆI ("user_ids") ,
login CHAR(64) ,
lozinka CHAR(64));

Imajte na umu da, za razliku od nekih drugih DBMS-ova, PostgreSQL nema kolone sa svojstvom auto_increment. Umjesto toga, Postgres koristi sekvence. Za sada je dovoljno znati da pomoću funkcije nextval možemo dobiti jedinstvene brojeve za dati niz:

SELECT NEXTVAL ("user_ids") ;

Postavljanjem zadane vrijednosti za polje id tablice korisnika na NEXTVAL("user_ids"), postigli smo isti efekat koji daje auto_increment. Prilikom dodavanja novih zapisa u tabelu, ne moramo specificirati id, jer će jedinstveni id biti generisan automatski. Više tabela može koristiti isti niz. Na ovaj način možemo garantirati da se vrijednosti nekih polja u ovim tabelama neće preklapati. U tom smislu, sekvence su fleksibilnije od auto_incrementa.

Potpuno ista tabela se može kreirati samo jednom naredbom:

CREATE TABLE korisnici2 (
id SERIJSKI PRIMARNI KLJUČ ,
login CHAR(64) ,
lozinka CHAR(64));

U ovom slučaju, sekvenca za polje id se kreira automatski.

Sada pomoću naredbe \d možete vidjeti listu svih dostupnih tabela, a koristeći \d users možete vidjeti opis tablice korisnika. Ako ne dobijete informacije koje tražite, pokušajte \d+ umjesto \d . Možete dobiti listu baza podataka pomoću naredbe \l i prebaciti se na određenu bazu podataka pomoću naredbe \c dbname. Za prikaz pomoći komande, recite \? .

Važno je napomenuti da PostgreSQL podrazumevano konvertuje imena tabela i kolona u mala slova. Ako ne želite ovakvo ponašanje, možete koristiti dvostruke navodnike:

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

Još jedna karakteristika PostgreSQL-a koja može izazvati poteškoće pri započinjanju rada sa ovim DBMS-om su takozvane „šeme“. Šema je nešto poput prostora imena za tabele, kao direktorijum sa tabelama unutar baze podataka.

Kreiranje šeme:

CREATE SCHEMA rezervacije;

Prebacite se na šemu:

SET search_path TO bookings;

Možete pogledati listu postojećih šema koristeći naredbu \dn. Podrazumevana šema je nazvana javna. U principu, možete uspješno koristiti PostgreSQL bez znanja o postojanju shema. Ali kada radite sa naslijeđenim kodom, iu nekim rubnim slučajevima, poznavanje shema može biti vrlo korisno.

Inače, rad sa PostgreSQL-om se ne razlikuje mnogo od rada sa bilo kojim drugim relacionim DBMS-om:

UMETNI U korisnike (login, lozinka)
VRIJEDNOSTI ("afiskon" , "123456" ) ;
SELECT * FROM korisnika;

Ako sada pokušate da se povežete na Postgres sa druge mašine, nećete uspeti:

psql -h 192.168.0.1 test_baze podataka test_user

Psql: ne mogu se povezati na server: Veza odbijena
Da li server radi na hostu "192.168.0.1" i prihvata
TCP/IP veze na portu 5432?

Da to popravite, dodajte redak:

listen_addresses = "localhost,192.168.0.1"

...u /etc/postgresql/9.2/main/postgresql.conf fajl takođe.

Pažnja : Ako radite na Windows OS-u i još niste instalirali PostgreSQL i Debit Plus V12, tada sa stranice za preuzimanje možete preuzeti Debit Plus V12 sklop sa unaprijed instaliranim PostgreSQL DBMS-om i povezanom bazom podataka (sa osnovnom konfiguracijom za Ukrajinu) . U suprotnom, prvo morate instalirati PostgreSQL DBMS i Debit Plus V12 softverski paket, nakon čega možete konfigurirati vezu i uvesti PostgreSQL bazu podataka slijedeći ove upute.

Da biste povezali PostgreSQL bazu podataka, morate izvršiti sljedeće korake:

    Pokrenite “Debit Plus V12” i dodajte novu bazu (kontekstni meni “Dodaj novo”).

    Ostavite kvačicu u polju "Dodaj postojeće na listu".

"DBMS" - POSTGRE.

"Poslužitelj baze podataka" - localhost.

“Naziv baze podataka” - navedite naziv baze podataka iz PostgreSQL DBMS malim slovima latinice (mala slova).

Bilješka: Obično se koristi jedna baza. Za posebne namjene, baza podataka se može podijeliti na nekoliko, tada morate označiti kućicu pored „Koristi više baza podataka“, kliknuti na dugme „Dalje“ i navesti korespondenciju „tagova“ sa fizičkim bazama podataka. Ovo može biti potrebno, na primjer, ako će se baze podataka nekoliko preduzeća odnositi na iste imenike (kontrastranke, artikli, itd.). O ovom slučaju se dalje ne raspravlja.

“Direktorij postavki” - odredite putanju do postavki baze podataka za PostgreSQL (drive\DebetPlusV12\base\pgdpbase).

Sačuvajte promjene klikom na dugme “Gotovo”.

    Pokrenite pgAdmin (PostgreSQL DBMS administrator), dodajte server (File/Add Server...) i dodajte novu bazu podataka (meni "Nova baza podataka...").

Unesite naziv servera, localhost u polje Host, popunite preostala polja po želji.

Unesite naziv baze podataka u polje “Naziv” (isto kao što je uneseno u polje “Server” u postavkama za povezivanje na bazu podataka “Debit Plus V12”).

    Da uvezete bazu podataka iz arhive, koristite meni „Vrati...”.

Odredite putanju do arhive baze podataka dpbase.bakup (drive\DebetPlusV12\base\pgdpbase).

    Možete dodati korisnika dpadmin, koji je po defaultu administrator u Debit Plus V12 (bez lozinke).

Dodijelite sva prava ovom korisniku.

Bilješka : Ne možete dodati dpadmin korisnika, tada ćete prilikom aktiviranja baze podataka morati unijeti ime postgres administratora.

Osvježite listu baza podataka (meni “Osvježi”).

Bilješka : Ako korisniku ne želite dodijeliti prava “Superuser”, tada dodijelite prava “Tabelama” i “Pregledima”. Da biste to učinili, odaberite odgovarajući objekt i odaberite stavku kontekstnog izbornika „Grant Wizard“.

Na kartici „Izbor“ kliknite na dugme „Proveri sve“, a na kartici „Privilegije“ označite „SVE“ i kliknite na dugme „Dodaj/promeni“. Sačuvajte promjene.

    Aktivirajte postavku veze sa bazom podataka u softveru Debit Plus V12 (kontekstni meni „Učini aktivnim“).

Sistem će tražiti lozinku za povezivanje sa bazom podataka. Kliknite na Yes.

Pažnja! Ako se takva poruka ne pojavi, počnite ažurirati strukture baze podataka odabirom stavke izbornika “Alati” / “Ažuriranje struktura baze podataka”.

Kao rezultat, pojavit će se sljedeći prozor:

Ostavite sve okvire za potvrdu kao zadane (moraju postojati kvačice u koloni “Reindex” za sve tabele baze podataka).

Nakon završetka modifikacije, možete početi s radom.

    Pokrenite “Debit Plus V12” i dodajte novu bazu (kontekstni meni “Dodaj novo”).

    Ostavite kvačicu u polju "Dodaj postojeće na listu":

U prvo polje unesite proizvoljno ime za bazu podataka (naziv može biti različit na svakom radnom računaru).

"DBMS" - POSTGRE.

“Server baze podataka” - naziv ili IP adresa servera.

“Port servera baze podataka” - navedite port servera baze podataka, default je 5432.

“Naziv baze podataka” - unesite naziv baze podataka malim slovima latinice.

"Naziv šeme baze podataka" - dpbase.

Označite samo polje “Koristi Debit Plus autorizaciju”.

“Direktorij postavki” - odredite putanju do postavki baze podataka za PostgreSQL (mrežna staza\DebetPlusV12\base\pgdpbase).

Sačuvajte promene klikom na dugme „Završi“, a zatim aktivirajte bazu podataka.

    Postavite opcije pokretanja (glavni meni “Postavke” / “Opcije pokretanja”)

U prozoru koji se pojavi, u polju „Lozinka za promjenu postavki“ unesite lozinku 150301 i kliknite na dugme „Prihvati“.

Odredite putanju do JDebet foldera na serveru i kliknite na sačuvaj. Učinite bazu podataka aktivnom i možete početi s radom.

Najbolji članci na ovu temu