|
Co to jest PostgreSQL
PostgreSQL : The most advanced Open Source database system in the world
PostgreSQL: Najbardziej zaawansowany system zarządzania bazą danych na świecie typu OpenSource - w taki oto sposób grupa rozwijająca SZBD PostgreSQL reklamuje swój produkt. SZBD PostgreSQL jest implementacją języka SQL, która zawiera w sobie bardzo wiele jego elementów, a na dodatek wprowadza wiele własnych rozszerzeń. Porównywany z mySQL oddaje mu pola przy małych instalacjach, które w prosty, a szybki sposób mają obsługiwać bazę danych - typu małe portale internetowe, proste bazy, i tym podobne. Jednakże SZBD PostgreSQL dostaje skrzydeł w większych projektach, jest często porównywany do bardzo rozbudowanego SZBD Oracle. Cechy SZBD PostgreSQL to między innymi:
osadzane języki proceduralne wykonywane przez bazę danych (plperl, pl/perlu, plpgsql, plpython, pltcl, pl/tcl)
możliwość tworzenia funkcji w PostgreSQLu w języku C, kompilowanych do bibliotek dynamicznych
sterowniki dostępu do bazy z języków C, C++, python, perl, czy Java (poprzez JDBC), ODBC
wysoce zaawansowana implementacja standardu SQL, obejmująca SQL/92
obsługa BLOB (Binary Large OBjects) -- dużych obiektów binarnych, takich jak pliki graficzne, itp.
obsługa pól typu AUTOINCREMENT jako SERIAL lub SEQUENCE
licencję BSD, która umożliwia zamykanie kodu SZBD PostgreSQL przy dokonywaniu modyfikacji, co jest istotne w rozwiązaniach biznesowych
Instalacja pakietów
Uruchamiamy program poldek:
Wykonujemy:
poldek>ls -l postgresql-* |
Przykładowy wynik to:
poldek> ls -l postgresql-*
package build date size
postgresql-7.4-0.8 2003/12/16 20:45 8.8 MB
postgresql-backend-devel-7.4-0.8 2003/12/16 20:45 1.4 MB
postgresql-clients-7.4-0.8 2003/12/16 20:45 1.5 MB
postgresql-devel-7.4-0.8 2003/12/16 20:45 93.0 KB
postgresql-doc-7.4-0.8 2003/12/16 20:45 5.3 MB
postgresql-ecpg-7.4-0.8 2003/12/16 20:45 479.0 KB
postgresql-ecpg-devel-7.4-0.8 2003/12/16 20:45 17.0 KB
postgresql-libs-7.4-0.8 2003/12/16 20:45 252.0 KB
postgresql-module-pgcrypto-7.4-0.8 2003/12/16 20:45 91.0 KB
postgresql-module-plperl-7.4-0.8 2003/12/16 20:45 30.0 KB
postgresql-module-plpgsql-7.4-0.8 2003/12/16 20:45 100.0 KB
postgresql-module-plpython-7.4-0.8 2003/12/16 20:45 35.0 KB
postgresql-module-pltcl-7.4-0.8 2003/12/16 20:45 44.0 KB
postgresql-static-7.4-0.8 2003/12/16 20:45 303.0 KB
postgresql-tcl-7.4-0.8 2003/12/16 20:45 38.0 KB
postgresql-tcl-devel-7.4-0.8 2003/12/16 20:45 0.0 KB
postgresql-tcl-static-7.4-0.8 2003/12/16 20:45 36.0 KB
17 packages, 18.6 MB
poldek> |
Do poprawnego działania SZBD PostgreSQL konieczne są następujące pakiety:
postgresql
postgresql-clients
postgresql-libs
Zatem można przystąpić do ich instalacji, wpisując następujące polecenie:
# poldek -i postgresql postgresql-clients postgresql-libs |
Aby SZBD PostgreSQL skorzystał z wewnętrznych języków plpgsql czy też plphpython należy doinstalować pakiety postgresql-module-plpgsql
# poldek -i postgresql-module-plpgsql |
oraz
root# poldek -i postgresql-module-plpython |
Konfiguracja PostgreSQLa w PLD
Wstępna konfiguracja
Edytujemy plik /etc/sysconfig/postgresql:
# vim /etc/sysconfig/postgresql |
I wybieramy odopowiednie podejście do bazy danych. Polecam standard setting.
Po edycji wykonanie komendy
# grep PG_DB_CLUSTERS /etc/sysconfig/postgresql | egrep -v ^# |
powinno dać wynik:
PG_DB_CLUSTERS="/var/lib/pgsql" |
Sortowanie po polsku
poldek -i localedb-src && localedb-gen -l pl_PL && echo LANG=pl_PL \
>>/etc/sysconfig/i18n |
TODO: locale tylko dla PostgreSQLa.
Inicjalizacja
Wykonujemy polecenie:
# service postgresql init |
Podczas inicjalizacji SZBD PostgreSQL stworzy pliki potrzebne mu do przechowywania tabel, tabele systemowe jak i bazy danych template0 i template1 konieczne do jego dalszego działania. Inicjalizacja PostgreSQLa nie jest równoznaczna z jego uruchomieniem, o czym dalej.
Konfiguracja PostgreSQLa
W punkcie (3) (<- TODO, shufla docbook lame) został zainicjalizowany cluster, w którym to można dodawać bazy
danych. Trzeba teraz odpowiednio skonfigurować tenże cluster. Przyda się
edycja plików ${PG_DB_CLUSTERS}/{postgresql.conf,pg_hba.conf}:
# vim /var/lib/pgsql/{postgresql.conf,pg_hba.conf} |
Przydatna opcja to tcpip_socket = true w pliku /var/lib/pgsql/postgresql.conf.
Uruchomienie PostgreSQLa
# service postgresql start |
Dodanie użytkownika
# su - postgres -c 'psql template1'
template1=# CREATE USER uzytkownik WITH ENCRYPTED PASSWORD 'hasło' \
CREATEUSER CREATEDB;
CREATE USER |
Użytkownik `uzytkownik' będzie miał możliwość tworzenia baz danych (za pomocą
createdb lub CREATE DATABASE z poziomu psql) jak i dodawania użytkowników (createuser lub
CREATE USER z poziomu psql).
Ostatni test
$ psql -h 127.0.0.1 template1
template-1=# SELECT count(*) FROM pg_database;
count
-------
2
(1 row) |
Dodatki
Warto włączyć obsługę PostgreSQLa w PHP, instalując pakiet php-pgsql,
również w perl-u perl-DBD-Pg lub perl-Pg, oraz w python-ie
python-postgresql. Pakiet postgresql-devel jest przydatny przy pisaniu
aplikacji w C/C++ korzystających z PostgreSQLa. Dokumentacja do PostgreSQLa
znajduje się, a jakże, w pakiecie postgresql-doc.
# poldek -i php-pgsql
# poldek -i perl-DBD-Pg
# poldek -i perl-Pg
# poldek -i python-postgresql
# poldek -i postgresql-devel
# poldek -i postgresql-doc |
Odnośniki
|
|