Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • In contact cu
  • Conectarea la postgresql din Windows. Conexiune la baza de date PostgreSQL

Conectarea la postgresql din Windows. Conexiune la baza de date PostgreSQL

0

sunt nedumerit. Avem o bază de date postgres 9.2 pe care o folosim de ceva timp. Acum trebuie să ne putem conecta la acesta din afara rețelei noastre.

Deci, am configurat adresa IP externă și testăm că ne putem conecta la portul 5432 de la gazda la distanță prin telnet. Deci, dovedește că conexiunea la rețea funcționează, firewall-uri etc. Totul este în regulă.

Când încerc să mă conectez cu:
PSQL -h db.host.com -d dbname -p 5432 -U utilizator

revin Psql: serverul a închis conexiunea în mod neașteptat.

Am verificat asta
listen_addresses = „*” este setat în postgresql.conf

Și în pg_hba.conf avem o linie care citește (doar pentru testare)
master all all 0.0.0.0/0 md5

Și am reîncărcat baza de date pentru a verifica modificările selectate.
Deci, acest lucru ar trebui să permită conexiuni din orice sursă.

Versiunea psql pe serverul bazei de date este 9.2.14, iar pe client este 9.2.13.

Ceva sugestii sau idei?

  • 1 raspuns
  • Triere:

    Activitate

1

Aș dori să încerc câteva lucruri pentru a obține mai multe informații:

    tail Postgres pentru a vă conecta la server pentru a vedea ce se întâmplă acolo când vă conectați.

    Rulați psql --version pentru a vă asigura că se potrivește mai mult sau mai puțin cu versiunea serverului. (Văd că ai făcut deja asta, dar o voi lăsa aici pentru posteritate.)

    Rulați strace psql .... pentru a vedea cât de departe eșuați.

Aceasta încă mi se pare o problemă de rețea. Care este comanda telnet cu care lucrați? „IP extern” sună la fel ca tine pe AWS. Configurarea accesului de la distanță la un VPC necesită mulți pași. Aveți și alte servicii deschise spre exterior care funcționează?

De asemenea, puteți depana prin închiderea serverului Postgres și folosind nc pentru a asculta pe 5432. Apoi conectează-te la telnet și vezi dacă poți trimite date înainte și înapoi.

1

Paul, multumesc pentru sugestii. Am făcut o întindere și am verificat versiunile. Și ai avut dreptate încercând să te conectezi de la AWS. Se pare că acesta a fost nivelul pe care l-am folosit în load balancer pentru a permite accesul numai la intervalele IP-2 IP pe care AWS le publică. Când am dezactivat irule, m-am putut conecta imediat. Deci, aceasta trebuie să fie o logică suprarealistă, deoarece am verificat IP-ul public al instanței mele EC2 și a fost într-adevăr listat în irule printr-o notificare CIDR. -

Administrare sistem

Această postare este un ghid rapid pentru începătorii care au instalat PostgreSQL pentru prima dată. Iată toate informațiile de care aveți nevoie pentru a începe să utilizați PostgreSQL.

Conexiune la DBMS

Primul lucru de făcut este să obțineți acces la PostgreSQL, acces ca superutilizator.
Setările de autentificare se află în fișierul pg_hba.conf.
  1. local all postgres peer
Această linie spune că utilizatorul postgres se poate conecta la orice bază de date locală PostgreSQL printr-un socket. Nu este nevoie să introduceți o parolă, sistemul de operare va transmite numele de utilizator și va fi folosit pentru autentificare.
Ne conectăm:
  1. $ sudo -u postgres psql postgres postgres
Pentru a vă putea conecta prin rețea, adăugați linia la pg_hdba.conf:
  1. # TIP METODA ADRESĂ UTILIZATOR BAZĂ DE DATE
  2. hostssl all all 0.0.0.0/0 md5
Metoda de autentificare md5înseamnă că trebuie să introduceți o parolă pentru a vă conecta. Acest lucru nu este foarte util dacă folosiți mult consola psql. Dacă vrei să automatizezi ceva, vestea proastă este că psql nu acceptă o parolă ca argument. Există două moduri de a rezolva aceste probleme: setarea unei variabile de mediu adecvate și stocarea parolei într-un fișier special .pgpass.

Setarea variabilei de mediu PGPASSWORD

Trebuie să spun imediat că este mai bine să nu folosiți această metodă, deoarece unele sisteme de operare permit utilizatorilor obișnuiți să vizualizeze variabilele de mediu folosind ps. Dar dacă doriți, atunci trebuie să scrieți în terminal:
  1. export PGPASSWORD = mypasswd
Variabila va fi disponibilă în sesiunea curentă. Dacă trebuie să setați o variabilă pentru toate sesiunile, atunci trebuie să adăugați linia din exemplu în fișierul .bashrc sau .bash_profile

Stocarea parolei într-un fișier .pgpass

Dacă vorbim despre Linux, atunci fișierul ar trebui să fie localizat în $ HOME (/ home / nume de utilizator). Doar proprietarul (0600) trebuie să aibă permisiuni de scriere și citire. Trebuie să scrieți rânduri ale formularului în fișier:
  1. nume gazdă: port: bază de date: nume utilizator: parolă
În primele patru câmpuri, puteți scrie „*”, ceea ce va însemna nicio filtrare (selecție completă).

Obținerea de informații de ajutor

\? - va oferi toate comenzile disponibile împreună cu o scurtă descriere a acestora,
\ h - va lista toate cererile disponibile,
\ h CREATE - va afișa ajutor pentru o anumită solicitare.

Gestionarea utilizatorilor DBMS

Cum obțin o listă de utilizatori PostgreSQL? Sau puteți interoga tabelul pg_user.
  1. SELECT * FROM pg_user;

Crearea unui nou utilizator PostgreSQL

Din shell-ul psql, puteți face acest lucru cu comanda CREATE.
  1. CREAȚI UTILIZATOR nume de utilizator CU parolă „parolă”;
Sau poți folosi terminalul.
  1. createuser -S -D -R -P nume de utilizator
Vi se va solicita o parolă.

Schimbați parola utilizatorului

  1. ALTER USER nume de utilizator WITH PASSWORD „parolă”;

Schimbarea rolurilor utilizatorului

Pentru a permite utilizatorului să creeze baze de date, rulați interogarea:
  1. ALTER ROLE username WITH CREATEDB;

Managementul bazei de date

Listarea bazelor de date în terminalul psql: La fel de la terminalul Linux:
  1. psql -l
Creați baza de date din psql (Terminal PostgreSQL)
  1. CREATE DATABASE dbname OWNER dbadmin;
Crearea unei noi baze de date folosind terminalul:
  1. creatb -O nume de utilizator dbname;

Configurarea drepturilor de acces la baza de date

Dacă utilizatorul este proprietarul (proprietarul) bazei de date, atunci el are toate drepturile. Dar dacă doriți să acordați acces unui alt utilizator, puteți face acest lucru folosind comanda GRANT. Interogarea de mai jos va permite utilizatorului să se conecteze la baza de date. Dar nu uitați de fișierul de configurare pg_hba.conf, acesta trebuie să aibă și permisiunile de conectare corespunzătoare.
  1. ACORDĂ CONECTAREA PE BAZĂ DE DATE dbname LA dbadmin;

PostgreSQL este un sistem de gestionare a bazelor de date cu sursă deschisă, multiplatformă, cu relații obiecte. Acest articol vă va arăta cum să instalați PostgreSQL pe Ubuntu Linux, să vă conectați la acesta și să rulați câteva interogări SQL simple și cum să configurați o copie de rezervă.

Pentru a instala PostgreSQL 9.2 pe Ubuntu 12.10, executați următoarele comenzi:

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

Să încercăm să lucrăm cu DBMS prin intermediul shell-ului:

sudo -u postgres psql

Să creăm o bază de date de testare și un utilizator de testare:

CREATE DATABASE test_database;
CREATE USER test_user CU parola „qwerty”;
ACCORDĂ TOATE PE BAZĂ DE DATE bazei de date_test CĂTRE utilizator_test;

Pentru a ieși din shell, introduceți comanda \ q.

Acum să încercăm să lucrăm cu baza de date creată în numele test_user:

psql -h localhost test_database test_user

Să creăm un tabel nou:

CREATE SEQUENCE user_ids;
CREATE TABLE utilizatori (
id INTEGER PRIMARY KEY DEFAULT NEXTVAL ("user_ids"),
autentificare CHAR (64),
parola CHAR (64));

Rețineți că, spre deosebire de alte SGBD, PostgreSQL nu are coloane auto_increment. În schimb, secvențele sunt folosite în postgres. Deocamdată, este suficient să știm că folosind funcția nextval, putem obține numere unice pentru o anumită secvență:

SELECTAȚI NEXTVAL ("user_ids");

Prin setarea valorii implicite pentru câmpul ID al tabelului utilizatorilor, valoarea NEXTVAL ("user_ids"), am obținut același efect ca auto_increment. La adăugarea de noi înregistrări în tabel, putem omite id-ul, deoarece va fi generat automat un id unic. Mai multe tabele pot folosi aceeași secvență. Astfel, ne putem asigura că valorile unor câmpuri din aceste tabele nu se suprapun. În acest sens, secvențele sunt mai flexibile decât auto_increment.

Același tabel poate fi creat cu o singură comandă:

CREATE TABLE users2 (
id CHEIE PRIMARĂ DE SERIE,
autentificare CHAR (64),
parola CHAR (64));

În acest caz, secvența pentru câmpul id este generată automat.

Acum cu comanda \ d puteți vedea lista tuturor tabelelor disponibile, iar cu ajutorul utilizatorilor \ d puteți vedea descrierea utilizatorilor tabelului. Dacă nu obțineți informațiile care vă interesează, încercați \ d + în loc de \ d. Lista bazelor de date poate fi obținută cu comanda \ l, iar trecerea la o anumită bază de date poate fi obținută cu comanda \ c dbname. Pentru ajutor la comandă, spuneți \? ...

Este important de reținut că PostgreSQL convertește în mod implicit numele tabelelor și coloanelor în litere mici. Dacă acest comportament este nedorit, puteți folosi ghilimele duble:

CREATE TABLE "un altTabel" ("someValue" VARCHAR (64));

O altă caracteristică PostgreSQL cu care poate fi dificil să începeți este așa-numita „schemă”. O schemă este ceva ca un spațiu de nume pentru tabele, ca un catalog de tabele dintr-o bază de date.

Crearea unei scheme:

CREATE SCHEMA rezervări;

Trecerea la circuit:

SETĂ search_path TO rezervări;

Puteți vizualiza o listă de scheme existente cu comanda \ dn. Valoarea implicită este o schemă numită public. În principiu, puteți utiliza cu succes PostgreSQL fără să știți despre existența schemelor. Dar atunci când lucrați cu cod vechi, precum și în unele cazuri marginale, cunoștințele despre scheme pot fi foarte utile.

În caz contrar, lucrul cu PostgreSQL nu este mult diferit de lucrul cu orice alt SGBD relațional:

INSERT INTO utilizatori (login, parola)
VALORI ("afiskon", "123456");
SELECT * FROM utilizatori;

Dacă încercați să vă conectați la postgres de pe o altă mașină acum, veți eșua:

psql -h 192.168.0.1 test_database test_user

Psql: nu s-a putut conecta la server: conexiune refuzată
Serverul rulează pe gazda „192.168.0.1” și acceptă
Conexiuni TCP/IP pe portul 5432?

Pentru a remedia acest lucru, adăugați linia:

listen_addresses = "localhost, 192.168.0.1"

... și în fișierul /etc/postgresql/9.2/main/postgresql.conf.

Atenţie : Dacă lucrați în Windows și nu ați instalat încă PostgreSQL și Debet Plus V12, atunci puteți descărca ansamblul Debit Plus V12 din pagina de descărcare cu un SGBD PostgreSQL preinstalat și o bază de date conectată (cu o configurație de bază pentru Ucraina). În caz contrar, trebuie să instalați mai întâi DBMS PostgreSQL și pachetul software Debet Plus V12, după care puteți configura conexiunea și importa baza de date PostgreSQL urmând această instrucțiune.

Pentru a conecta baza de date PostgreSQL, trebuie să faceți următoarele:

    Lansați „Debit Plus V12” și adăugați o nouă bază (meniul contextual „Adăugați nou”).

    Lăsați caseta de selectare „Adăugați existente la listă”.

„DBMS” - POSTGRE.

„Server de baze de date” - localhost.

„Numele bazei de date” - specificați numele bazei de date din DBMS PostgreSQL cu litere latine mici (litere mici).

Notă: De obicei se folosește o bază. În scopuri speciale, baza de date poate fi împărțită în mai multe, apoi trebuie să bifați caseta de lângă „Utilizați mai multe baze de date”, faceți clic pe butonul „Următorul” și indicați corespondența „etichetelor” cu bazele de date fizice. Acest lucru poate fi necesar, de exemplu, dacă bazele de date ale mai multor întreprinderi se vor referi la aceleași directoare (contrapărți, articole etc.). Acest caz nu este discutat în continuare.

„Directorul de setări” - specificați calea către setările de bază pentru PostgreSQL (unitate \ DebetPlusV12 \ bază \ pgdpbase).

Salvați modificările făcând clic pe Terminare.

    Porniți pgAdmin (administrator DBMS PostgreSQL), adăugați un server (Fișier / Adăugare server...) și adăugați o nouă bază de date (meniul Bază de date nouă...).

Introduceți numele serverului, localhost în câmpul Gazdă, completați restul câmpurilor după cum doriți.

Introduceți numele bazei de date în câmpul „Nume” (la fel cu cel introdus în câmpul „Server” în setările pentru conectarea la baza de date „Debet Plus V12”).

    Pentru a importa baza de date din arhivă, utilizați „Restaurare...”

Specificați calea către arhiva bazei de date dpbase.bakup (unitate \ DebetPlusV12 \ bază \ pgdpbase).

    Puteți adăuga utilizatorul dpadmin, care este administrator, la Debit Plus V12 în mod implicit (fără parolă).

Atribuiți toate drepturile acestui utilizator.

Notă : Nu puteți adăuga utilizatorul dpadmin, atunci când activați baza de date, va trebui să introduceți numele administratorului postgres.

Reîmprospătați lista de baze (meniul „Reîmprospătare”).

Notă : Dacă nu doriți să atribuiți drepturi „Superutilizator” utilizatorului, atunci atribuiți drepturile „Tabele” și „Vizualizări”. Pentru a face acest lucru, selectați obiectul corespunzător și selectați elementul de meniu contextual Grant Wizard.

În fila „Selectare”, faceți clic pe butonul „Verificați toate”, iar în fila „Privilegii”, bifați caseta de selectare „TOATE” și faceți clic pe butonul „Adăugați/Modificați”. Salvați modificările.

    Activați setarea conexiunii la baza de date în software-ul Debet Plus V12 (meniul contextual „Activați”).

Sistemul va cere o parolă pentru a se conecta la baza de date. Faceți clic pe Da.

Atenţie! Dacă un astfel de mesaj nu apare, atunci începeți actualizarea structurilor bazei de date selectând elementul de meniu „Serviciu” / „Actualizarea structurilor bazei de date”.

Ca urmare, va apărea următoarea fereastră:

Lăsați toate casetele de selectare în mod implicit (trebuie să existe casete de selectare în coloana „Reindexare” pentru toate tabelele bazei de date).

După terminarea modificării, puteți începe lucrul.

    Lansați „Debit Plus V12” și adăugați o nouă bază (meniul contextual „Adăugați nou”).

    Lăsați caseta de selectare „Adăugați existente la listă”:

În primul câmp, specificați un nume arbitrar pentru baza de date (numele poate fi diferit pe fiecare computer de lucru).

„DBMS” - POSTGRE.

Database Server este numele sau adresa IP a serverului.

Portul serverului bazei de date - specificați portul serverului bazei de date, implicit 5432.

„Numele bazei de date” - specificați numele bazei de date cu litere latine cu litere mici.

„Numele schemei bazei de date” este dpbase.

Bifați doar caseta „Utilizați autorizarea Debit Plus”.

„Directorul de setări” - specificați calea către setările de bază pentru PostgreSQL (calea de rețea \ DebetPlusV12 \ bază \ pgdpbase).

Salvați modificările făcute făcând clic pe butonul „Finish”, apoi activați baza.

    Setați parametrii de lansare (meniul principal „Setări” / „Parametri de lansare”)

În fereastra care apare, în câmpul „Parola pentru modificarea setărilor”, introduceți parola 150301 și faceți clic pe butonul „Acceptare”.

Specificați calea către folderul JDebet de pe server și faceți clic pe Salvare. Faceți baza activă și vă puteți apuca de treabă.

Top articole similare