PostgreSQLMySQL

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
9. sor: 9. sor:
 
*Természetesen jelentős szolgáltatás-növelés történt azóta
 
*Természetesen jelentős szolgáltatás-növelés történt azóta
 
*Kliens-szerver architektúrájú (a szerver program neve postmaster)
 
*Kliens-szerver architektúrájú (a szerver program neve postmaster)
  +
*UNIX-alapú rendszereken fut csak, ezért Windowson csak is Cygwin vagy MinGW telepítése után használható (mármint a szerverprogram)
   
 
===Telepítés===
 
===Telepítés===
39. sor: 40. sor:
 
*A rendszergazda beléphet az 'su postgres' paranccsal (Ubuntu esetén 'sudo su postgres')
 
*A rendszergazda beléphet az 'su postgres' paranccsal (Ubuntu esetén 'sudo su postgres')
 
*Felhasználó létrehozása a 'createuser <username>' paranccsal. Néhány kapcsoló:
 
*Felhasználó létrehozása a 'createuser <username>' paranccsal. Néhány kapcsoló:
**
+
**-s, --superuser: a felhasználó superuser lesz
*Adatbázis létrehozása 'createdb <adatbazisnev>' paranccsal
+
**-d, --createdb: a felhasználó hozhat majd létre adatbázisokat
  +
**-D, --nocreatedb
  +
**-r, --createrole: a felhasználó hozhat majd létre szerepeket (tehát felhasználókat vagy csoportokat)
  +
**-R, --nocreaterole
  +
**-c, --connection-limit: egyszerre hány kapcsolatot létesíthet a felhasználó
  +
**-P: a parancs kiadása után meg kell adni jelszót
  +
**-E: a jelszót titkosítva tárolja a szerver
  +
**-N: jelszó ne legyen titkosítva
  +
*Felhasználó törlése 'dropuser <username>' paranccsal
  +
*Adatbázis létrehozása 'createdb <adatbazisnev>' paranccsal. Néhány kapcsoló:
  +
**-D, --tablespace: tablespace megadása. A tablespace egy könyvtár a file rendszeren, ahová a tablespace-hez tartozó táblák eltárolásra kerülnek. A tablespace-nek van neve, amivel hivatkozni lehet rá (hasznos lehet pl., ha több különböző sebességű lemezünk van)
  +
**-O, --owner: melyik felhasználó lesz az adatbázis tulajdonosa
  +
**-T, --template: sablon adatbázis, amely alapján az új adatbázis felépül. Kezdetben két sablon van:
  +
***template1: ez az alapértelmezett sablon, ha nem adjuk meg a -T kapcsolót, akkor ezt az adatbázist másolja át az új helyére is. Ilyen módon állíthatunk be telepítés-specifikus beállításokat, alapvető táblákat, felhasználókat stb. amelyek/akik minden adatbázis részei.
  +
***template0: csupasz sablon, ezt az adatbázist soha ne módosítsuk az initdb lefuttatása után (hasznos lesz pl., ha pg_dump segítségével építünk fel újra régebbi adatbázist)
  +
**-h, --host: melyik hoston fut a szerver. Ha /-jellel kezdődik, akkor Unix-domain socketet adunk meg
  +
**-p, --port: melyik porton figyel a szerver
  +
**-U, --username: melyik felhasználóként csatlakozzon alapértelmezés szerint
  +
**-W, --password: kötelező legyen jelszó megadása
  +
*Adatbázis törlése 'dropdb <adatbazisnev>' paranccsal
 
*Adatbázisba belépni a 'psql <adatbazisnev>' paranccsal lehet
 
*Adatbázisba belépni a 'psql <adatbazisnev>' paranccsal lehet
 
**Ha nem adjuk meg az adatbazis nevét, akkor a felhasználó alapértelmezett adatbázisába lép be. Ha ilyen nem létezik, hiba. (Itt felhasználó alatt az operációs rendszer felhasználóját értjük.)
 
**Ha nem adjuk meg az adatbazis nevét, akkor a felhasználó alapértelmezett adatbázisába lép be. Ha ilyen nem létezik, hiba. (Itt felhasználó alatt az operációs rendszer felhasználóját értjük.)
 
**Ha más felhasználó adatbázisába szeretnénk belépni, mint amelyik be van jelentkezve az operációs rendszerbe (pl. mert más a felhasználónevünk a kettőben - nem kell egyezniük, semmi közük egymáshoz), akkor az -U kapcsolót használhatjuk.
 
**Ha más felhasználó adatbázisába szeretnénk belépni, mint amelyik be van jelentkezve az operációs rendszerbe (pl. mert más a felhasználónevünk a kettőben - nem kell egyezniük, semmi közük egymáshoz), akkor az -U kapcsolót használhatjuk.
  +
*A felsorolt programocskák (createuser, dropuser, createdb, dropdb) frontendet jelentenek bizonyos PostreSQL-utasításokhoz. Ugyanezek a műveletek elvégezhetőek tehát PostgreSQL parancssornál is, CREATE ROLE, DROP ROLE, CREATE DATABASE, illetve DROP DATABASE utasításokkal.

A lap 2007. december 8., 18:46-kori változata

Tartalomjegyzék

1 PostgreSQL és MySQL összehasonlítása adminisztrátor szemszögéből

Először külön áttekintem a két DBMS-t, majd a végén térek rá a különbségekre.

1.1 PostgreSQL

  • Többfelhasználós RDBMS
  • Berkeley Egyetemen kifejlesztett POSTGRES objektum-relációs adatbáziskezelő rendszer nyílt forrású bővítése
  • Természetesen jelentős szolgáltatás-növelés történt azóta
  • Kliens-szerver architektúrájú (a szerver program neve postmaster)
  • UNIX-alapú rendszereken fut csak, ezért Windowson csak is Cygwin vagy MinGW telepítése után használható (mármint a szerverprogram)

1.1.1 Telepítés

  • RedHat esetén rpm csomagból. Le kell tölteni az összes szükséges csomagot, majd futtatni kell a következő parancsot:
    • rpm -ivh postgresql-*
  • Néhány főbb csomag, amikre szükség lehet:
    • postgresql : alapcsomagok
    • postgresql-contrib : kiegészítő csomagok
    • postgresql-devel : alkalmazások fejlesztéséhez és fordításához. A kiszolgáló telepítéséhez feltétlenül szükséges
    • postgresql-jdbc : Java DataBase Connectivity-t lehetővé tevő csomag
    • postgresql-libs : megosztott programkönyvtárak
    • postgresql-odbc : Open DataBase Connectivity, API amit nagyon sok eszköz támogat
    • postgresql-perl : Perlben lehessen kiegészítőket írni
    • postgresql-python : ugyanez Pythonban
    • postgresql-server : akkor kell, ha nem csak távoli hosthoz kapcsolódunk, hanem helyileg is működtetünk szervert
  • Debian-alapú rendszer esetén mindössze egy parancs a telepítés:
    • apt-get install postgresql
  • Természetesen forrásból is telepíthető a szokásos ./configure, make, make install hármassal. A forrás letölthető a http://www.postgresql.org oldalról
  • A szerver elindítása /etc/init.d/postgresql start paranccsal történik. Előfordulhat, hogy a postgresql szó után kötőjelet, majd a verziószámot meg kell adni.

1.1.2 Adminisztratív feladatok ellátása

1.1.2.1 Felhasználók, adatbázisok létrehozása

  • Kezdetben egyetlen felhasználó létezik, melynek neve postgres.
  • A rendszergazda beléphet az 'su postgres' paranccsal (Ubuntu esetén 'sudo su postgres')
  • Felhasználó létrehozása a 'createuser <username>' paranccsal. Néhány kapcsoló:
    • -s, --superuser: a felhasználó superuser lesz
    • -d, --createdb: a felhasználó hozhat majd létre adatbázisokat
    • -D, --nocreatedb
    • -r, --createrole: a felhasználó hozhat majd létre szerepeket (tehát felhasználókat vagy csoportokat)
    • -R, --nocreaterole
    • -c, --connection-limit: egyszerre hány kapcsolatot létesíthet a felhasználó
    • -P: a parancs kiadása után meg kell adni jelszót
    • -E: a jelszót titkosítva tárolja a szerver
    • -N: jelszó ne legyen titkosítva
  • Felhasználó törlése 'dropuser <username>' paranccsal
  • Adatbázis létrehozása 'createdb <adatbazisnev>' paranccsal. Néhány kapcsoló:
    • -D, --tablespace: tablespace megadása. A tablespace egy könyvtár a file rendszeren, ahová a tablespace-hez tartozó táblák eltárolásra kerülnek. A tablespace-nek van neve, amivel hivatkozni lehet rá (hasznos lehet pl., ha több különböző sebességű lemezünk van)
    • -O, --owner: melyik felhasználó lesz az adatbázis tulajdonosa
    • -T, --template: sablon adatbázis, amely alapján az új adatbázis felépül. Kezdetben két sablon van:
      • template1: ez az alapértelmezett sablon, ha nem adjuk meg a -T kapcsolót, akkor ezt az adatbázist másolja át az új helyére is. Ilyen módon állíthatunk be telepítés-specifikus beállításokat, alapvető táblákat, felhasználókat stb. amelyek/akik minden adatbázis részei.
      • template0: csupasz sablon, ezt az adatbázist soha ne módosítsuk az initdb lefuttatása után (hasznos lesz pl., ha pg_dump segítségével építünk fel újra régebbi adatbázist)
    • -h, --host: melyik hoston fut a szerver. Ha /-jellel kezdődik, akkor Unix-domain socketet adunk meg
    • -p, --port: melyik porton figyel a szerver
    • -U, --username: melyik felhasználóként csatlakozzon alapértelmezés szerint
    • -W, --password: kötelező legyen jelszó megadása
  • Adatbázis törlése 'dropdb <adatbazisnev>' paranccsal
  • Adatbázisba belépni a 'psql <adatbazisnev>' paranccsal lehet
    • Ha nem adjuk meg az adatbazis nevét, akkor a felhasználó alapértelmezett adatbázisába lép be. Ha ilyen nem létezik, hiba. (Itt felhasználó alatt az operációs rendszer felhasználóját értjük.)
    • Ha más felhasználó adatbázisába szeretnénk belépni, mint amelyik be van jelentkezve az operációs rendszerbe (pl. mert más a felhasználónevünk a kettőben - nem kell egyezniük, semmi közük egymáshoz), akkor az -U kapcsolót használhatjuk.
  • A felsorolt programocskák (createuser, dropuser, createdb, dropdb) frontendet jelentenek bizonyos PostreSQL-utasításokhoz. Ugyanezek a műveletek elvégezhetőek tehát PostgreSQL parancssornál is, CREATE ROLE, DROP ROLE, CREATE DATABASE, illetve DROP DATABASE utasításokkal.
Személyes eszközök