Po instalacji - co dalej?
Pierwszym krokiem jaki musimy zrobić po instalacji jest sprawdzenie poprawności owej instalacji. Aby tego dokonać wykonamy jedną krótką komendę. Ponieważ domyślne hasło na użytkownika bazodanowego postgres jest zablokowane, wykorzystujemy sudo.
sudo -u postgres createdb mojabaza
Oczywiście jeżeli mamy dostęp do root'a to zamiast używać sudo możemy przelogować się na użytkownika systemowego postgres i wpisać tylko:
createdb mojabaza
Powyższa komenda odpowiada za założenie bazy danych o nazwie mojabaza. Oczywiście możemy tu użyć dowolnej nazwy bazy danych wg własnego uznania. Jeżeli komenda zakończy się sukcesem to można pominąć dalszą część tej sekcji. Jeżeli na ekranie pojawi się:
createdb: command not found
oznacza to, że PostgreSQL nie został zainstalowany poprawnie lub jest problem z interpretacją ścieżek w systemie. By lepiej zdiagnozować problem wydajemy to samo polecenie podając pełną ścieżkę do polecenia.
/usr/local/pgsql/bin/createdb mydb
Ścieżka może różnić się w zależności od systemu. Jeżeli komenda tym razem zakończyła się sukcesem to musimy dodać ścieżkę do polecenia do zmiannej $PATH. W innej sytuacji musimy na nowo zainstalować PostgreSQL.
Inny komunikat, który może nam pojawić się na ekranie przy próbie utworzenia bazy danych jest:
createdb: could not connect to database postgres: 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"?
Oznacza on, że baza danych nie jest uruchomiona lub że polecenie createdb odwołuje się do innej instancji bazy danych niż ta, która mamy obecnie zainstalowaną. Stan bazy danych, uruchomienie lub zamknięcie możemy wykonać poprzez serwisy. Przykład poniżej, wybieramy jeden z trzech przełaczników napisanych pogrubioną czcionką.
service postgresql status/start/stop
Inne komunikaty błedów:
createdb: could not connect to database postgres: FATAL: role "name" does not exist
createdb: database creation failed: ERROR: permission denied to create database
oznaczają kolejno brak użytkownika "name" w bazie danych i brak uprawnień do utworzenia bazy danych. Polecenie createdb jest uruchamiane w kontekście użytkownika systemowego, dlatego też nie zawsze występuje w bazie danych. Aby dane polecenie uruchomić w kontekście innego użytkownika niż nasz użytkownik systemowy należy użyć przełącznika -U lub ustawić zmienną systemową $PGUSER na nazwę użytkownika bazodanowego.
Jak dostać się do bazy danych
Dostęp do bazy danych możemy uzyskać poprzez klienta graficznego takiego jak np. pgAdmin. Jest to chyba najpopularniejszy darmowy klient do łaczenia się z bazą danych. Oczywiście klientów graficznych jest o wiele więcej zarówno darmowych jak i komercyjnych. Są także narzędzia współpracujące z wtyczkami ODBC i JDBC, które także mogą okazać się pomocne w uzyskaniu dostępu do bazy PostgreSQL. Mamy także coś dla lubiących konsole, a mianowicie psql. Będąc w konsoli na użytkowniku postgres (lub używając sudo) wydajemy komendę:
psql -U user -d DB_name -h host
przełaczniki oznaczają kolejno użytkownika (user), na którego nastąpi logowanie do bazy danych, nazwe bazy danych (DB_name),baz danych możemy mieć wiele w systemie, oraz hosta na którego się łaczymy. W tym wypadku jest możliwość podania adresu ip jak i nazwy domenowej. Możemy wydać także komendę psql bez przełaczników:
psql DB_name
Taka forma tej komendy także powinna zadziałać o ile nasza baza danych jest bazą lokalną, użytkownik systemowy ma taką sama nazwę jak użytkownik bazodanowy. Narzędzie psql ma o wiele większą listę przełaczników niż wymienione w tym artykule. Mozna się z nimi zapoznac w helpie dla tego polecenia.
psql --help
Po zalogowaniu do bazy danych poprzes psql'a znajdujemy się dalej w wierszu poleceń. Wygląda on mniej więcej tak:
psql (9.4.5) Type "help" for help. DB_name=>
pierwsza linia informuje nas o tym, że jesteśmy w psql'u, a także o numerze wersji tego narzędzia. Wersja może się różnić od wersji samej bazy danych. DB_name=> jest to nasz znak zachęty. To w tej linii wpisujemy wszystkie polecenia począwszy od zapytań typu SELECT po komendy systemowe. Aby więcej dowiedzieć się o komendach wbudowanych w psql'a wystarczy wydać komendę \? i wcisnąć enter. Z kolei polecenie \h pokaże nam komendy bazodanowe postgres'a.