По умолчанию БД сервера будет находится /usr/local/pgsql
Следует произвести первоначальную инициализаци БД.
noc# su pgsql
$ initdb -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.
The database cluster will be initialized with locale ru_RU.KOI8-R.
This locale setting will prevent the use of indexes for pattern matching
operations. If that is a concern, rerun initdb with the collation order
set to "C". For more information see the Administrator's Guide.
creating directory /usr/local/pgsql/data... ok
creating directory /usr/local/pgsql/data/base... ok
creating directory /usr/local/pgsql/data/global... ok
creating directory /usr/local/pgsql/data/pg_xlog... ok
creating directory /usr/local/pgsql/data/pg_clog... ok
creating template1 database in /usr/local/pgsql/data/base/1... ok
creating configuration files... ok
initializing pg_shadow... ok
enabling unlimited row size for system tables... ok
initializing pg_depend... ok
creating system views... ok
loading pg_description... ok
creating conversions... ok
setting privileges on built-in objects... ok
vacuuming database template1... ok
copying template1 to template0... ok
Success. You can now start the database server using:
/usr/local/bin/postmaster -D /usr/local/pgsql/data
or
/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
$ exit
noc#
Редактируем файл /usr/local/pgsql/.cshrc :
Он должен иметь следующий вид:
set path = ( /usr/local/bin $path )
# note: PGDATA can be overridden by the -D startup option
setenv PGDATA $HOME/data
setenv LC_ALL ru_RU.KOI8-R
Следующий этап - запуск SQL сервера:
noc# /usr/local/etc/rc.d/010.pgsql.sh start
pgsqlnoc#
Проконтролировать запуск сервера можно в log файле /var/log/pgsql
Создание пользователя и БД для пользователей
Необходимо создать пользователя и БД для работы с VPN
noc# su pgsql
$ createuser
Enter name of user to add: vpn
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
$ createdb -U vpn vpn
CREATE DATABASE
$
Установим пароль для пользователя vpn - VPN (для примера)
$ psql vpn
Добро пожаловать в psql 7.3.3 - Интерактивный Терминал PostgreSQL.
Наберите: \copyright для условий распространения
\h для подсказки по SQL командам
\? для подсказки по внутренним slash-командам (\команда)
\g или ";" для завершения и выполнения запроса
\q для выхода
vpn=# ALTER USER vpn PASSWORD 'VPN';
ALTER USER
vpn-#
vpn-# \q
$
И добавить поддержку языка plpgsql для БД vpn
$ createlang plpgsql vpn
$ exit
Далее следует создать таблицы в БД vpn. Файл vpn.sql содержит
описание необходимых нам таблиц. Файл vpn_fun.sql содержит описание
функций необходимых для работы.
http://www.opennet.ru/soft/vpn/vpn.sql
http://www.opennet.ru/soft/vpn/vpn_fun.sql
Устанавливаем их (используя привелегии root).
# psql vpn vpn -f vpn.sql
ERROR: table "users" does not exist
NOTICE: CREATE TABLE will create implicit sequence 'users_id_seq' for SERIAL c
olumn 'users.id'
CREATE TABLE
CREATE INDEX
ERROR: table "users_attribute" does not exist
NOTICE: CREATE TABLE will create implicit sequence 'users_attribute_id_seq' for SERIAL column 'users_attribute.id'
CREATE TABLE
ERROR: table "stat" does not exist
NOTICE: CREATE TABLE will create implicit sequence 'stat_id_seq' for SERIAL column 'stat.id'
CREATE TABLE
CREATE INDEX
# psql vpn vpn -f vpn_fun.sql
ERROR: RemoveFunction: function get_traffic_limit(character varying) does notexist
CREATE FUNCTION
ERROR: RemoveFunction: function check_lost(character varying) does not exist
CREATE FUNCTION
Сообщения на отсутсвие таблиц/функций слкдует проигнорировать в перый
раз.
На этом настройку PostgreSQL для наших целей следует считать
законченной.
За более подробной информацией касаемой PostgreSQL следует обратится к
документации