Az első lépések a postgresql
Az első lépések a PostgreSQL
Telepíteni a PostgreSQL 9.2 Ubuntu 12.10, futtassa a következő parancsokat:
sudo apt-add-repository ppa: Pitti / postgresql
sudo apt-get update
sudo apt-get install postgresql-9.2
Próbáljuk együtt dolgozni az adatbázissal a héj:
sudo -u postgres psql
Készíts egy próba adatbázist és vizsgálati felhasználói:
postgres = # CREATE DATABASE test_database;
CREATE DATABASE
postgres = # CREATE USER test_user jelszóval 'qwerty';
CREATE ROLE
postgres = # összes jog engedélyezése az adatbázis test_database TO test_user;
GRANT
Hogy kilépjen a héj adja a parancsot \ q.
Most megpróbálunk együttműködni az újonnan létrehozott adatbázis nevében test_user:
-jét -h localhost test_database test_user
Hozzon létre egy új táblát:
test_database => CREATE SEQUENCE user_ids;
CREATE SORREND
test_database => CREATE TABLE felhasználó (
ID INTEGER PRIMARY KEY DEFAULT NEXTVAL ( 'user_ids'),
);
FIGYELMEZTETÉS: CREATE TABLE / elsődleges kulcs CREATE INDEX implicit "users_pkey" FOR TABLE "felhasználók"
CREATE TABLE
Megjegyzendő, hogy ellentétben néhány más adatbázisok PostgreSQL nincs oszlopok auto_increment tulajdon. Ehelyett szekvenciák (szekvenciák) használják Postgres. Abban a pillanatban, elég tudni, hogy a segítségével nextval funkció akkor kap egy egyedi szám a megadott sorrendben:
test_database => SELECT NEXTVAL ( 'user_ids');
NEXTVAL
---------
1
(1 sor)
test_database => SELECT NEXTVAL ( 'user_ids');
NEXTVAL
---------
2
(1 sor)
Felírása egy alapértelmezett értéket a mezőnek táblázat azonosító értékű felhasználók NEXTVAL (user_ids). elértük ugyanazt a hatást, hogy ad auto_increment. Amikor új tételt, akkor nem adja meg azonosítóját az asztalra, mert egy egyedi azonosító automatikusan generálódik. Több táblázatok használja ugyanazt a sorozatot. Így tudjuk biztosítani, hogy az értékek bizonyos területeken ezek a táblák nem fedik egymást. Ebben az értelemben a szekvenciák rugalmasabb, mint auto_increment.
Pontosan ugyanez a tábla hozható létre egyetlen paranccsal:
test_database => CREATE TABLE users2 (id SERIAL elsődleges kulcsot, be CHAR (64), jelszó CHAR (64));
FIGYELMEZTETÉS: CREATE TABLE létrehoz implicit szekvencia "users2_id_seq" soros oszlop "users2.id"
FIGYELMEZTETÉS: CREATE TABLE / elsődleges kulcs CREATE INDEX implicit "users2_pkey" FOR TABLE "users2"
CREATE TABLE
Mint látható, a sorozat a mező id automatikusan jött létre.
Most, hogy a parancs \ d, akkor megjelenik egy lista az összes rendelkezésre álló asztalok és a \ d felhasználó - lásd a leírást a felhasználók tábla. Ha nem kapja meg az információt érdekes, próbáljon \ d + helyett \ d. Megjelenítéséhez parancs segítségével tell \ h.
Fontos megjegyezni, hogy a PostgreSQL alapértelmezett asztal és oszlopok nevei alakítjuk kisbetűs. Ha ez a viselkedés nem kívánatos, akkor használjon idézőjeleket:
test_database => CREATE TABLE "anotherTable" ( "someValue" VARCHAR (64));
CREATE TABLE
test_database => SELECT * FROM anotherTable;
Hiba: „anothertable” nem létezik
1. sor: SELECT * FROM anotherTable;
^
test_database => SELECT * FROM "anotherTable";
someValue
-----------
(0 sor)
A többi munka PostgreSQL nem sokban különbözik a munkát bármely más relációs adatbázis-kezelő rendszerek:
test_database => INSERT INTO felhasználók (login, jelszó) VALUES ( 'afiskon', '123456');
INSERT 0 1
test_database => SELECT * FROM felhasználók számára;
Ha most megpróbál csatlakozni a PostgreSQL a másik gépen nem fog működni:
-jét -h 192.168.0.1 test_database test_user
-jét: nem tudott csatlakozni a szerverre: kapcsolat elutasítva
A szerver fut host „192.168.0.1”, és elfogadja
TCP / IP kapcsolatok porton 5432?
Ennek kijavításához hozzá a következő sort:
... a /etc/postgresql/9.2/main/postgresql.conf fájlt is:
fogadó mind mind 192.168.0.1/16 md5
... a /etc/postgresql/9.2/main/pg_hba.conf fájlt, és azt mondják:
sudo service postgresql restart
Most mindent meg kell dolgozni.
pg_dump -c -h 192.168.0.1 -U test_user test_database> ./dump.sql
Ha van egy nagy adatbázis, figyelni, hogy a támogatás közüzemi pg_dump -Fc zászló.
Visszaállítása biztonsági mentésből:
macska dump.sql | -jét -h 192.168.0.1 test_database test_user
A biztonsági mentés közben, akkor kap egy hiba, mint ez:
pg_dump: szerver verzió: 9.2.4; pg_dump verzió: 9.1.9
pg_dump: kilépés miatt kiszolgáló verziója nem
Amennyire én tudom, az egyetlen normális megoldás erre a problémára - őszintén tartani mindenütt azonos változatát PostgreSQL.
Vegye figyelembe, hogy az alapértelmezett PostgreSQL konfigurációs sugallja, hogy próbál futtatni a mikrohullámú sütőben. Mielőtt a PostgreSQL biztosan változtatni leküzdésére ezeket a beállításokat a hardver és az alkalmazás.