Innledning

PostgreSQL er en kraftig object-relational database management system, levert i henhold til en fleksibel BSD-style lisens. PostgreSQL inneholder mange avanserte funksjoner, er veldig rask og standarder-kompatibel.

PostgreSQL har bindinger for mange programmeringsspråk som C, C++, Python, Java, PHP, Ruby… Det kan bli brukt til å drive alt fra enkle web-applikasjoner til enorme databaser med millioner av oppføringer.,

Klient Installasjon

Hvis du bare ønsker å koble til en ekstern PostgreSQL server, må du ikke installere den viktigste PostgreSQL-pakke, men installere PostgreSQL client pakken i stedet. For å gjøre dette, bruker du følgende kommando

 sudo apt-get install postgresql-client

du kan deretter koble til serveren med følgende kommando

 psql -h server.domain.org database user

Etter at du har satt inn passordet du tilgang til PostgreSQL linje med kommandoer., Du kan for eksempel sette inn følgende

 SELECT * FROM table WHERE 1;

Du vil avslutte tilkoblingen med

 \q

Installasjon

for Å installere server lokalt bruk kommando linje og skriv inn:

 sudo apt-get install postgresql postgresql-contrib

Dette vil installere den nyeste versjonen som er tilgjengelig i din Ubuntu-utgivelse, og den brukte add-ons for det.

Se «Eksterne Lenker» nedenfor for alternativer for å komme i nyere versjoner.,

Installere PostGIS, formelle språk, klient grensesnitt, etc

Ekstra pakkene inneholder prosessuelle språk kjøretidsfiler, add-ons som PostGIS, språk, klient grensesnitt som psycopg2 for Python, etc. Du kan få en liste med:

 apt-cache search postgres

Administrasjon

pgAdmin III er en hendig GUI for PostgreSQL, det er viktig for nybegynnere. For å installere det, skriver du på kommando-linjen:

 sudo apt-get install pgadmin3

Du kan også bruke Synaptic package manager fra Systemet>Administrasjon-menyen for å installere disse pakkene.,

Grunnleggende Server-Oppsett

for Å starte, trenger vi å angi passordet for PostgreSQL bruker (rolle) kalt «postgres»; vi vil ikke være i stand til å få tilgang til serveren eksternt på annen måte. Som den lokale «postgres» Linux-bruker, som vi har tillatelse til å koble til og manipulere server med psql-kommandoen.

I en terminal, skriv:

sudo -u postgres psql postgres

denne kobler seg som en rolle med samme navn som den lokale brukeren, dvs. «postgres», til database kalt «postgres» (1. argument for å psql).,

du vil Angi et passord for «postgres» database rolle ved å bruke kommandoen:

\password postgres

og oppgi passordet når du blir bedt om det. Passordet teksten blir skjult fra konsollen for sikkerhet formål.

Skriv inn Control+D eller \q for å avslutte posgreSQL be.

Opprett database

for Å lage den første databasen, som vi vil kalle «mydb», skriver du bare:

 sudo -u postgres createdb mydb

Installere Server Instrumentering (for PgAdmin) for Postgresql 8.4 eller 9.3

PgAdmin krever installasjon av en add-on for full funksjonalitet., Den «adminpack» addon, som det kaller Server Instrumentering, er en del av postgresql-contrib, så må du installere denne pakken hvis du ikke allerede har gjort det:

 sudo apt-get install postgresql-contrib

Så for å aktivere extension, etter «»Postgresql 8.4″», kjøre adminpack.sql script, skriver du bare:

 sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql

For «Postgresql 9.3″+ installere adminpack «extension» i «postgres» database:

 sudo -u postgres psql CREATE EXTENSION adminpack;

Alternative Server-Oppsett

Hvis du ikke har tenkt å koble til databasen fra andre maskiner, denne alternative oppsett kan gjøres enklere.,

som standard i Ubuntu, Postgresql er konfigurert til å bruke ‘ident sameuser’ godkjenning for alle tilkoblinger fra samme maskin. Sjekk ut de gode Postgresql-dokumentasjonen for mer informasjon, men i hovedsak betyr dette at hvis din Ubuntu brukernavn er ‘foo’, og du legger til ‘foo’ som en Postgresql-bruker så kan du koble til databasen uten å kreve et passord.,

Siden det bare brukeren som kan koble til en fersk installasjon er postgres brukeren, her er hvordan å lage deg en database-konto (som er i dette tilfellet også en database superbruker) med samme navn som brukernavn, og deretter oppretter du et passord for brukeren:

 sudo -u postgres createuser --superuser $USER sudo -u postgres psql
 postgres=# \password $USER

Klient-programmer, standard, koble til den lokale verten ved hjelp av Ubuntu brukernavn og forvente å finne en database med det navnet også., Så for å gjøre ting VELDIG enkelt, bruke din nye superbruker rettigheter gitt ovenfor for å opprette en database med samme navn som brukernavn:

 sudo -u postgres createdb $USER

Koble til din egen database for å prøve ut noen SQL skal nå være så enkelt som:

 psql

å Skape ekstra database er bare så lett, så for eksempel, etter å ha kjørt dette:

 create database amarokdb;

Du kan gå rett fram og fortelle Amarok å bruke postgresql til å lagre sine musikk-katalogen., Databasen navn ville være amarokdb, brukernavn ville være din egen login-navn, og du trenger ikke engang et passord takk til ‘ident sameuser’ så kan du la det stå tomt.

ved Hjelp av pgAdmin III GUI

for Å få en idé om hva PostgreSQL kan gjøre, kan du begynne ved å skyte opp en grafisk klient. I en terminal skriv :

 pgadmin3

Du vil bli presentert med pgAdmin III grensesnitt. Klikk på «Legg til en tilkobling til en server» – knappen (øverst til venstre). I den nye dialogboksen skriv inn adressen 127.0.0.1 (Local host er standard, så det kan være utelatt.,), en beskrivelse av server, standard database («mydb» i eksempelet ovenfor), brukernavn («postgres») og ditt passord. En mer trinnet er nødvendig for å tillate pgAdmin III for å koble til serveren, og det er å redigere pg_hba.conf-fil og endre pålitelighetskontrollmetode fra node-til-md5 (vil ikke fungere hvis du ikke angi passord):

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

og endre linjen

# Database administrative login by Unix domain socketlocal all postgres peer

for å

# Database administrative login by Unix domain socketlocal all postgres md5

Nå bør du laste server konfigurasjon endringer og koble pgAdmin III til PostgreSQL database server.,

sudo /etc/init.d/postgresql reload

Med dette GUI du kan begynne å opprette og administrere databaser, kan du søke i databasen, kjører SQl etc.

Administrere Serveren

for Å lære mer om hvordan du administrerer PostgreSQL (men uten Ubuntu detaljer) se den offisielle PostgreSQL dokumentasjon

Administrere brukere og rettigheter

brukeradministrasjon er diskutert i detalj i client authentication kapittel av PostgreSQL dokumentasjon; følgende er en innledning til å få deg i gang.

for Å administrere brukere, må du først må redigere /etc/postgresql/gjeldende/main/pg_hba.,conf og endre standard konfigurasjon som er veldig låst ned og sikkert. For eksempel, hvis du ønsker postgres til å administrere sine egne brukere (ikke knyttet til system-brukere), vil du legge til følgende linje:

8<-------------------------------------------# TYPE DATABASE USER IP-ADDRESS IP-MASK METHODhost all all 10.0.0.0 255.255.255.0 md58<-------------------------------------------

Som betyr at du på ditt lokale nettverk (10.0.0.0/24 – bytt ut med din egen lokale nettverk !), postgres brukere kan koble seg til gjennom nettverket til database som gir en klassisk par bruker / passord.

i Tillegg tillater en bruker til å koble til over nettverket til en database på server, må du aktivere PostgreSQL å lytte på tvers av ulike nettverk., For å gjøre det, åpne opp /etc/postgresql/gjeldende/main/postgresql.conf i din favoritt editor og endre listen_addresses som nedenfor:

listen_addresses = '*'

for å lytte på alle nettverksgrensesnittene. Se dokumenter for listen_addresses for andre alternativer.

for Å opprette en database med en bruker som har fulle rettigheter på database, bruker du følgende kommando:

sudo -u postgres createuser -D -A -P myusersudo -u postgres createdb -O myuser mydb

Den første kommando linje skaper brukeren med ingen database creation rettigheter (-D) med ikke legge til bruker-rettigheter -En), og vil be deg om å skrive inn et passord (-P)., Den andre kommandolinjen opprette databasen ‘mydb med ‘myuser» som eier.

Dette lite eksempel vil trolig dekke de fleste av dine behov. For flere detaljer, vennligst referer til tilsvarende mannen sider eller elektronisk dokumentasjon.

omstart av serveren

Etter konfigurere nettverk / brukere du kan få behov for å laste server, her er et forslag til kommandoen til å gjøre det.

sudo /etc/init.d/postgresql reload

Noen innstillinger endringer i postgresql.,conf krever en full omstart, som vil avslutte aktive tilkoblinger, og avbryte ukommiterte transaksjoner:

sudo /etc/init.d/postgresql restart

Mer å lese

Hvis du ikke er kjent med SQL kan du ønsker å se nærmere på denne kraftige språk, selv om noen enkle anvendelser av PostgreSQL kan ikke krever dette kunnskap (for eksempel en enkel Django-prosjektet).

PostgreSQL nettstedet inneholder et vell av informasjon om hvordan du bruker denne databasen. Spesielt opplæringen er et nyttig utgangspunkt, men du kan hoppe over installasjonen, trinn som du allerede har installert den ved hjelp av Ubuntu pakker.,

Feilsøking

fe_sendauth: ingen passord som leveres

Din pg_hba.conf angir at md5-godkjenning brukes til denne forbindelsen basert på opprinnelse-vert, tilkoblingsmetoden og den ønskede brukernavn/database, men søknaden ikke angi et passord.

Endre autentisering modus eller du kan angi et passord for brukeren du vil koble til, og angi deretter det samme passordet på nytt i programmets tilkoblingsinnstillinger.,

FATAL: rolle «myusername» ikke eksisterer

standard PostgreSQL kobles til PostgreSQL bruker med samme navn som den aktuelle unix bruker. Har du ikke opprettet en PostgreSQL bruker med dette navnet i databasen.

Opprett en som passer brukeren, eller angi et annet brukernavn når du forsøker å koble med. I kommandolinje-verktøy -U flagget gjør dette.

FATAL: database «myusername» ikke eksisterer

En bruker som heter «myusername» finnes, men det er ingen database med samme navn.,

standard PostgreSQL kobles til database med samme navn som brukeren du skal koble til as, men det betyr ikke automatisk opprette databasen hvis det ikke eksisterer.

Opprette databasen, eller angi en annen database for å koble til.

FATAL: Peer godkjenning mislyktes for brukeren «myusername»

Du kobler til via localhost en unix-socket. En bruker som heter «myusername» eksisterer, men din nåværende unix bruker er ikke det samme som brukernavnet., PostgreSQL er satt til å bruke «node» – godkjenning på unix-kontakter for denne brukeren/db combo så det krever unix og postgresql brukernavn for å matche.

Koble fra unix bruker som passer til den ønskede PostgreSQL-bruker – kanskje med sudo -u theusername psql – eller endre pg_hba.conf å bruke en annen autentisering modus som «md5» for dette brukernavnet.,

kan ikke koble til server: Ingen slik fil eller mappe

En feil som dette (muligens med en annen unix-socket-bane, avhengig av installert):

 psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

kan bety flere ting:

* serveren ikke kjører;

* serveren har en annen unix_socket_directories til standard i kundens libpq, enten på grunn av forskjellige samlet-i standarder eller en feilaktige innstillingen;

* serveren lytter på en annen «port»., PostgreSQL emulerer TCP/IP-porter på unix stikkontakter ved hjelp av portnummeret som suffiks for socket-fil, for eksempel 5432.

Eliminere disse i sving.

du Først kontrollere at serveren er i gang. På Ubuntu, ps -u postgres -f vil vise deg alle prosesser som kjører som brukeren postgres – du vil se flere de heter postgres.

Nå sørge for at serveren lytter hvor klienten mener det er. For å finne ut PostgreSQL server socket katalog:

 sudo -u postgres psql -c "SHOW unix_socket_directories;"

eller på eldre PostgreSQL versjoner, unix_socket_directory som parameter endret navn., For å vise server port (som gjelder for både TCP/IP-og unix-spor):

 sudo -u postgres psql -c "SHOW port;"

Hvis du selv ikke kan koble til med psql under unix user postgres du kan sjekke socket dir med lsof:

 $ sudo lsof -U -a -c postgres COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME postgres 6565 postgres 5u unix 0xffff88005a049f80 0t0 183009 /tmp/.s.PGSQL.5432 postgres 6566 postgres 1u unix 0xffff88013bc22d80 0t0 183695 socket postgres 6566 postgres 2u unix 0xffff88013bc22d80 0t0 183695 socket

I dette tilfellet den første linjen er kontakten beliggenhet. Denne serveren har kontakten katalogen /tmp med port 5432.,

Hvis din klient er å se i en annen kontakt directory, er du sannsynligvis prøver å koble til over unix stikkontakter til standard socket banen og/eller til standard port, og libpq kundesøknaden din er knyttet til, har ulike samlet-i unix-socket banen og/eller port enn din kjører PostgreSQL. Mest sannsynlig er det at LD_LIBRARY_PATH eller /etc/ld.slik.conf har en annen libpq før en som ble levert med din versjon av PostgreSQL. Dette ikke vanligvis å bety mye, du kan bare overstyre socket katalogen.,

for Å angi en alternativ socket katalog og/port port for å koble til, må du angi socket dir som vert parameter i forbindelse valg, for eksempel for å koble deg som bruker bob til serveren lytter på /tmp på port 5433:

 psql -h /tmp -p 5433 -U bob ...

eller i forbindelse-string skjemaet:

 psql "host=/tmp port=5433 user=bob ..."

Det samme som fungerer med hvilken som helst klient som bruker libpq (alle PostgreSQL client tools, pluss f.eks. psycopg2, Pg perle i Ruby/Rails, PHP postgres og PUD, Perl er DBB::Pg, etc.)., Det fungerer IKKE med ikke-libpq kunder som PgJDBC, py-postgresql, osv, men de fleste av disse ikke støtter unix stikkontakter i det hele tatt. Se klienten dokumentasjon for ikke-libpq baserte klienter.

Offisielle PostgreSQL nedlastinger

PostgreSQL prosjektet gir en offisiell liste over nedlasting steder, inkludert en Ubuntu software repository, på sin side for nedlasting. Spesielt Ubuntu-brukere kan få nyere PostgreSQL versjoner enn de som er pakket i deres Ubuntu slipper å bruke apt-get via apt.postgresql.org.

For støtte og tjenester rundt PostgreSQL se tjenester og kundestøtte.,

EnterpriseDB

PostgreSQL Linux nedlastinger siden inneholder en del på «Grafisk installer» bygget av EnterpriseDB. Du last ned installasjonsprogrammet, kan du endre egenskapene for å tillate å kjøre det som kommando (det har .kjør extension), og kjøre det fra kommandolinjen som i «sudo whateveritwas.kjøre».

Du ende opp med

  • konfigurert DB server-instans, som starter med din server
  • pgAdmin III UI klientprogrammet

Merk at den installerte programvaren ikke vil være integrert med Ubuntu software center., Som et resultat, vil du ikke motta sikkerhetsoppdateringer fra Ubuntu. Men den installerte versjonen vil i samsvar med siste Ubuntu-versjon.

Nøkkelferdige Linux

En Ubuntu-baserte PostgreSQL apparatet er en av de enkleste måtene å få opp og kjører med PostgreSQL på Ubuntu. Det er en del av en familie av pre-integrert Nøkkelferdige Programvare for Linux Apparater basert på Ubuntu 10.04.1 (Lucid LTS).