Категорії
DataBases

[postgresql] Начинаем работать с PostgreSQL

1) Установка

Заходим в порты и ставим сервер postgresql82-server.

#cd /usr/ports/database/postgresql82-server && make install clean

Начинается установка. После установки сама база и настройки будут лежать в /usr/local/pgsql (если эта папка пустая, значит нужно инициализировать, то есть создать пустую БД, шаблоны, конфиги. О том как это сделать, читаем в разделе инициализация БД.). Пользователь, от которого будет работать база называется pgsql. Сначало можно будет войти в базу только под этим юзером. Познакомимся “подближе” с этой БД.

2) Инициализация БД.

При установке вы можете обнаружить, что каталог /usr/local/pgsql пуст. Что бы создать БД, шаблоны и прочее нужно запустить скрипт инициализации БД:

#initdb /usr/local/pgsql/data/

где параметром выступает путь к каталогу, где будет лежать сама БД, конфиги. Эту команду следует выполнять из-под пользователя pgsql.

ПС. Под Gentoo linux для инициализации БД нужно было выполнить такую команду:

#emerge postgresql-server --config

Переключаемся на юзера pgsql (или от того, от которого работает postgresql)

#su pgsql
%

Узнаём список доступных баз и подключаемся к базе postgres (свежеустановленная БД содержит 3 базы: template0 и template1 – шаблоны баз, которые менять не стоит, а так же базу postgres )

%psql -l
List of databases
Name    | Owner | Encoding
-----------+-------+----------
postgres  | pgsql | UTF8
template0 | pgsql | UTF8
template1 | pgsql | UTF8
(3 rows)

$ psql postgres
Welcome to psql 8.2.7, the PostgreSQL interactive terminal.
Type:  \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=#

Для управления базой существует windows-клиент, называемый PostgreSQL Maestro, который имеет довольно удобный интерфейс. Для доступа к базе с другой машины, нежели где стоит сервер, нужно добавить следующую строчку в файл /usr/local/pgsql/data/pg_hba.conf

host    all         all         10.10.10.1/32         trust

где указываем IP-адрес, если нужно дать доступ всей подсети, то указываем подсеть и маску 24.

Для любителей web-доступа есть отличный аналог phpMyAdmin – phpPgAdmin. Написан на php и не требует никаких настроек. Главное – собрать php с поддержкой PostgreSQL.

3) Создание пользователя и базы.

Сначала создавать будем пользователя, а потом базу (при создании пользователя будут задавать вопросы).

#su pgsql
%createuser postfix_user

Если хотите автоматом, без вопросов то лучше сделать так:

%createuser -DRS postfix_user

Создаём БД:

%createdb -O postfix_user postfix_db

Смотрим информацию:

%psql -l
List of databases
Name    | Owner | Encoding
-----------+-------+----------
postfix_db| postfix_user | UTF8
postgres  | pgsql | UTF8
template0 | pgsql | UTF8
template1 | pgsql | UTF8
(4 rows)

4) Правка конфига

Открываем файл postgresql.conf и правим такие опции:

listen_addresses='localhost'
max_connections = 150
unix_socket_directory='/tmp'
unix_socket_group='pgsql'
unix_socket_permissions=0777
log_destination='syslog'
log_directory='/var/log/postgres'
log_filename='pgsql-%Y-%m-%d'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
timezone = GMT

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff