Een databank maken. Verlaat de console. Log in op de console

Systeembeheer

Dit bericht is korte instructies voor beginners, voor degenen die PostgreSQL voor de eerste keer hebben geïnstalleerd. Alles is hier noodzakelijke informatie om aan de slag te gaan met PostgreSQL.

Verbinding maken met het DBMS

Het eerste dat u moet doen, is toegang krijgen tot PostgreSQL, toegang als superuser.
Authenticatie-instellingen bevinden zich in het bestand pg_hba.conf.
  1. lokaal alle postgres-peers
Deze regel geeft aan dat de postgres-gebruiker via een socket verbinding kan maken met elke lokale PostgreSQL-database. Het is niet nodig om een ​​wachtwoord in te voeren; het besturingssysteem verzendt de gebruikersnaam en deze wordt gebruikt voor authenticatie.
Laten we verbinding maken:
  1. $ sudo -u postgres psql postgres postgres
Om verbinding te kunnen maken via het netwerk, moet je de regel toevoegen aan pg_hdba.conf:
  1. # TYPE DATABASE GEBRUIKERSADRES METHODE
  2. hostssl allemaal allemaal 0.0.0.0/0 md5
Authenticatiemethode md5 betekent dat u een wachtwoord moet invoeren om verbinding te maken. Dit is niet erg handig als u vaak de psql-console gebruikt. Als je sommige acties wilt automatiseren, is het slechte nieuws dat psql geen wachtwoord als argument accepteert. Er zijn twee manieren om deze problemen op te lossen: het instellen van de juiste omgevingsvariabele en het opslaan van het wachtwoord in een speciaal .pgpass-bestand.

De omgevingsvariabele PGPASSWORD instellen

Ik zal meteen zeggen dat het beter is om deze methode niet te gebruiken, omdat je met sommige besturingssystemen kunt bekijken gewone gebruikers omgevingsvariabelen met behulp van ps. Maar als je wilt, moet je in de terminal schrijven:
  1. export PGPASSWORD=mijnwachtwoord
De variabele zal beschikbaar zijn in de huidige sessie. Als u voor alle sessies een variabele moet instellen, moet u de regel uit het voorbeeld toevoegen aan het bestand .bashrc of .bash_profile

Het wachtwoord opslaan in het .pgpass-bestand

Als we het over Linux hebben, dan zou het bestand zich in $HOME (/home/gebruikersnaam) moeten bevinden. Alleen de eigenaar (0600) moet schrijf- en leesrechten hebben. U moet regels als deze naar het bestand schrijven:
  1. hostnaam:poort:database:gebruikersnaam:wachtwoord
U kunt in de eerste vier velden een “*” schrijven, wat betekent dat er niet gefilterd wordt (volledige selectie).

Hulpinformatie verkrijgen

\? - zal alles weggeven beschikbare commando's samen met hun korte beschrijving,
\h - toont een lijst met alle beschikbare zoekopdrachten,
\h CREATE - biedt hulp bij een specifiek verzoek.

DBMS-gebruikersbeheer

Hoe krijg ik een lijst met PostgreSQL-gebruikers?
  1. Of u kunt de tabel pg_user opvragen.

SELECTEER * VAN pg_user;

Een nieuwe PostgreSQL-gebruiker maken Van schelp
  1. psql dit kan worden gedaan met behulp van de opdracht CREATE.
CREËER GEBRUIKERSgebruikersnaam MET wachtwoord "wachtwoord" ;
  1. Of u kunt de terminal gebruiken.
createuser -S -D -R -P gebruikersnaam

U wordt gevraagd een wachtwoord in te voeren.

  1. Het gebruikerswachtwoord wijzigen

ALTER GEBRUIKER gebruikersnaam MET WACHTWOORD "wachtwoord" ;

Gebruikersrollen wijzigen
  1. Voer de volgende query uit om de gebruiker toestemming te geven om databases te maken:

ALTER ROLE gebruikersnaam WITH CREATEDB ;

Databasebeheer
  1. Een lijst met databases weergeven in de psql-terminal: Hetzelfde vanaf de Linux-terminal:
psql-l
  1. Een database maken vanuit psql (PostgreSQL Terminal)
CREËER DATABASE dbnaam EIGENAAR dbadmin ; Creatie nieuwe basis
  1. gegevens via de terminal:

createb -O gebruikersnaam dbnaam;

Toegangsrechten tot de database instellen Als de gebruiker de eigenaar van de database is, heeft hij alle rechten. Maar als u toegang wilt geven aan een andere gebruiker, kunt u dit doen met het GRANT-commando. Met de onderstaande zoekopdracht kan de gebruiker verbinding maken met de database. Maar vergeet het niet configuratiebestand
  1. pg_hba.conf, moet het ook over de juiste verbindingsrechten beschikken.

VERLEEN VERBINDING OP DATABASE dbnaam NAAR dbadmin; De eerste test om aan te tonen dat u toegang hebt tot de databaseserver, is door te proberen een database aan te maken. Lopende server

PostgreSQL kan meerdere databases beheren. Normaal gesproken wordt voor elk project of elke gebruiker een aparte database gebruikt. Het is mogelijk dat de beheerder van uw machine al een database voor u heeft aangemaakt. Het had u de naam van uw database moeten vertellen. In dit geval kunt u dit gedeelte overslaan en doorgaan naar het volgende. Om een ​​nieuwe database te maken, in dit voorbeeld mydb genoemd, kunt u de volgende opdracht gebruiken: $ createb mydb

Als de opdracht zonder berichten is voltooid, dan deze stap

is met succes afgerond en u kunt het onderstaande overslaan tot het einde van dit gedeelte.

Als je iets krijgt dat lijkt op: createb: command

niet gevonden kan op uw machine anders zijn. Neem contact op met uw beheerder of bekijk de installatie-instructies om de situatie te corrigeren.

Een ander bericht dat u mogelijk ontvangt: createb: kan geen verbinding maken met de database postgres: kan geen verbinding maken met de server: Geen bestand of map Geen bestand of map Is de server lokaal actief en accepteert hij verbindingen op Unix-domein socket "/tmp/.s. PGSQL.5432"?

Dit betekent dat de server niet is gestart, of dat deze niet is gestart zoals verwacht door de opdracht createb. Controleer nogmaals de installatie-instructies of raadpleeg uw beheerder.

Een ander bericht dat u mogelijk ontvangt: createb: kon geen verbinding maken met de database postgres: FATAL: gebruiker "joe" bestaat niet

waar uw inlognaam wordt vermeld in plaats van Joe. Dit bericht verschijnt als de beheerder geen gebruiker voor u heeft aangemaakt in PostgreSQL. (Een PostgreSQL-gebruiker is geen gebruiker van een besturingssysteem.) Als u een beheerder bent, raadpleegt u Hoofdstuk 20 voor informatie over het aanmaken van een gebruiker. U dient zich te registreren bij besturingssysteem onder de naam van de gebruiker waaronder PostgreSQL draait (meestal postgres) om de eerste gebruiker in het DBMS aan te maken.

Voor de opdracht database maken kunt u in PostgreSQL ook een gebruikersnaam opgeven die verschilt van de gebruikersnaam van uw huidige besturingssysteem; in dit geval moet u de PostgreSQL-gebruikersnaam instellen met de optie of instelling -U omgevingsvariabele PGUSER.

Als

U kunt ook databases met andere namen maken.

Met PostgreSQL kunt u een willekeurig aantal databases op één server maken. Databasenamen moeten bestaan ​​uit letters en cijfers (er moet altijd eerst een letter staan) en mogen niet langer zijn dan 63 bytes. Het is best handig om een ​​database aan te maken met dezelfde naam als de gebruiker. Veel tools gebruiken deze standaard als databasenaam, zodat u niet op te veel knoppen hoeft te klikken. Om zo'n database aan te maken met dezelfde naam als de gebruiker, typt u eenvoudigweg: $ Createdb. Als u uw database in de toekomst niet meer wilt gebruiken, kunt u deze verwijderen. Als u bijvoorbeeld de eigenaar (maker) bent van de mydb-database, kunt u deze verwijderen met de volgende opdracht: $ dropdb mydb (Voor deze opdracht moet u er zeker van zijn dat u een databasenaam opgeeft; er wordt niet vanuit gegaan dat de databasenaam de naam van de huidige gebruiker is.) Deze opdracht

zal alle bestanden die aan de opgegeven database zijn gekoppeld fysiek verwijderen, zodat ze niet kunnen worden hersteld. Voer deze handeling dus met grote zorg uit. Nadat je hebt gedownload Engelse zoekwoordendatabase

, moet u lokaal een databaseserver installeren en leren hoe u selecties maakt. Om dit te doen, bieden wij stapsgewijze instructies.

BELANGRIJK: Als u geen ervaring heeft met het werken met databases of als deze ervaring minimaal is, raden we u ten zeerste aan om met een minimale basis te beginnen om het proces uit te werken.

De schermafbeeldingen in de instructies tonen het werken met een minimale basis, en dienovereenkomstig wordt de tijd aangegeven voor een minimale basis, maar het werken met een uitgebreide en maximale basis zal langer duren.

Downloaden en installeren van de PostgreSQL-databaseserver

http://www.postgresql.org/download/windows/ 1. Downloaden gratis programma voor de basis PostgreSQL-gegevens
van de officiële website http://www.postgresql.org/

downloaden/windows/

http://www.enterprisedb.com/products-services-training/pgdownload#windows: Volg dan de link naar gedetailleerde pagina
databaseversies voor verschillende besturingssystemen: http://www.enterprisedb.com/
producten-diensten-training/


pgdownload#windows: BELANGRIJK: Wij raden u aan de databaseserver te installeren en daarin selecties te maken 64-bit systeem met minimaal 6 GB RAM bij het werken met minimale en uitgebreide databases. Bij een maximale basis is de aanbevolen hoeveelheid RAM vanaf 32 GB ook wenselijk. Op een computer met een 32-bits systeem zal het proces van het importeren van gegevens, het indexeren ervan en het daadwerkelijk ophalen ervan heel erg lang duren, dus het is beter om dit idee te laten varen.

Als u de bitdiepte van uw besturingssysteem niet weet, kunt u deze opzoeken in de computereigenschappen ( rechter knop muis op het item "Computer", selecteer "Eigenschappen" in het menu):


2. Installeer de gedownloade PostgreSQL-database. Tijdens de installatie is bijna alles standaard...


...behalve een paar dingen.

3. Start de tabeloptimalisatiebewerking op een vergelijkbare manier:

vacuüm "eng_data_table";


Optimalisatie duurt gemiddeld 15-30 minuten.

Opmerking: We voeren verzoeken één voor één uit, waarbij we eerst eerdere verzoeken wissen die al zijn uitgevoerd. U kunt zien of het verzoek is voltooid of niet via het bericht in het uitvoervenster onderaan (het verschijnt wanneer het verzoek is voltooid), en u kunt de uitvoeringstijd vinden in de statusbalk onder aan het venster.

PostgreSQL is een platformonafhankelijk object-relationeel DBMS met open broncode. Dit artikel laat zien hoe u PostgreSQL installeert Ubuntu-Linux, maak er verbinding mee en voer een paar uit eenvoudige SQL-query's en hoe u back-ups instelt.

Om PostgreSQL 9.2 op Ubuntu 12.10 te installeren, voert u de volgende opdrachten uit:

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

Laten we proberen via de shell met het DBMS te werken:

sudo -u postgres psql

Laten we een testdatabase en een testgebruiker maken:

DATABASE MAKEN test_database;
MAAK GEBRUIKER test_user MET wachtwoord "qwerty";
VERLEEN ALLES OP DATABASE test_database AAN test_user;

Om de shell te verlaten, voert u de opdracht \q in.

Laten we nu proberen met de gemaakte database te werken namens test_user:

psql -h localhost test_database test_gebruiker

Laten we een nieuwe tabel maken:

CREËER SEQUENTIE user_ids;
CREATE TABLE-gebruikers (
id INTEGER PRIMAIRE SLEUTEL STANDAARD NEXTVAL ("user_ids" ),
inloggen CHAR(64) ,
wachtwoord CHAR(64));

Houd er rekening mee dat PostgreSQL, in tegenstelling tot sommige andere DBMS'en, geen kolommen heeft met de eigenschap auto_increment. In plaats daarvan gebruikt Postgres reeksen. Op op dit moment het is voldoende om te weten dat we met de nextval-functie kunnen komen unieke nummers voor een bepaalde reeks:

SELECTEER VOLGENDE ("user_ids");

Door de standaardwaarde voor het id-veld van de gebruikerstabel in te stellen op NEXTVAL("user_ids"), hebben we hetzelfde effect bereikt als auto_increment. Bij het toevoegen van nieuwe records aan de tabel hoeven we de id niet op te geven, omdat er automatisch een unieke id wordt gegenereerd. Meerdere tabellen kunnen dezelfde volgorde gebruiken. Op deze manier kunnen we garanderen dat de waarden van sommige velden in deze tabellen niet overlappen. In deze zin zijn reeksen flexibeler dan auto_increment.

Exact dezelfde tabel kan worden gemaakt met slechts één opdracht:

MAAK TABEL gebruikers2 (
id SERIËLE PRIMAIRE SLEUTEL,
inloggen CHAR(64) ,
wachtwoord CHAR(64));

In dit geval wordt de volgorde voor het id-veld automatisch aangemaakt.

Met behulp van de opdracht \d kunt u nu een lijst met alle beschikbare tabellen bekijken, en met behulp van \d gebruikers kunt u een beschrijving van de gebruikerstabel zien. Als u niet de informatie krijgt waarnaar u op zoek bent, probeer dan \d+ in plaats van \d . U kunt een lijst met databases opvragen met de opdracht \l en naar een specifieke database overschakelen met de opdracht \c dbname. Om hulp bij opdrachten weer te geven, zegt u \?

. Het is belangrijk op te merken dat in PostgreSQL standaard tabel- en kolomnamen worden gecast kleine letters

. Als u dit gedrag niet wilt, kunt u dubbele aanhalingstekens gebruiken:

CREATE TABLE "anotherTable" ("eenWaarde" VARCHAR (64) );

Een ander kenmerk van PostgreSQL dat problemen kan veroorzaken bij het starten met dit DBMS zijn de zogenaamde “schema’s”. Een schema is zoiets als een naamruimte voor tabellen, zoals een map met tabellen in een database.

Een schema maken:

SCHEMA-boekingen MAKEN;

Overstappen naar schema:

SET zoekpad NAAR boekingen;

Met de opdracht \dn kunt u een lijst met bestaande schema's bekijken. Het standaardschema heet public. In principe kunt u PostgreSQL met succes gebruiken zonder dat u op de hoogte bent van het bestaan ​​van schema's. Maar bij het werken met verouderde code, en in sommige randgevallen, kan kennis over schema's erg nuttig zijn.

Voor het overige verschilt het werken met PostgreSQL niet veel van het werken met andere relationele DBMS'en:
INSERT INTO gebruikers (login, wachtwoord)
WAARDEN ("afiskon" , "123456" );

SELECTEER * VAN gebruikers;

Als u nu vanaf een andere machine verbinding probeert te maken met Postgres, mislukt het volgende:

psql -h 192.168.0.1 test_database test_gebruiker Psql: kan geen verbinding maken met de server:
Verbinding geweigerd
Draait de server op host "192.168.0.1" en accepteert deze

TCP/IP-verbindingen op poort 5432?

Om dit op te lossen, voegt u de regel toe:

luister_adressen = "localhost,192.168.0.1"