Установка и настройка PostgreSQL на хостинге NIC.ru.

Май 25th, 2008

Создаем на хостинге папку:

mkdir pgsql
cd pgsql

Скачиваем в нее дистрибутив с http://wwwmaster.postgresql.org/

Распаковываем

tar -xf postgresql-(версия).tar.gz
cd postgresql-(версия)
./configure —prefix=/home/LOGIN/pgsql/ —disable-shared —disable-rpath && make && make install
cd ..

Создаем каталог, где будут храниться базы данных и инициализируем его:

mkdir DB
./bin/initdb -E windows-1251 /home/LOGIN/pgsql/DB/

 

Изменяем конфигурационный файл сервера: /home/LOGIN/pgsql/DB/postgresql.conf

listen_addresses = ‘ВАШ_IP’
port = 5432

Стартуем сервер:

./bin/postgres -D /home/LOGIN/pgsql/DB
или
./bin/pg_ctl -D /home/LOGIN/pgsql/DB -l logfile start

В итоге получаем:

[LOGIN@webXX ~/pgsql]$ psql -d template1
Welcome to psql 8.1.5 (server 8.3.1), 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
WARNING: You are connected to a server with major version 8.3,
but your psql client is major version 8.1. Some backslash commands,
such as \d, might not work properly.
template1=# \q

 

Скрипт запуска:

[USER@web ~/pgsql]$ cat ~/etc/rc.d/postgres 
#! /bin/sh
prefix=/home/$USER/pgsql
PGDATA="/home/$USER/pgsql/DB/"
PGUSER=$USER
PGLOG="$PGDATA/serverlog"
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON="$prefix/bin/postmaster"
PGCTL="$prefix/bin/pg_ctl"
test -x "$DAEMON" || exit 0
case $1 in
    start)
$DAEMON -D $PGDATA & >>$PGLOG 2>&1
echo -n ' postgresql'
;;
    stop)
$PGCTL stop -D $PGDATA -s -m fast
;;
    restart)
$PGCTL stop -D $PGDATA -s -m fast -w
$DAEMON -D $PGDATA & >>$PGLOG 2>&1
;;
    status)
$PGCTL status -D $PGDATA
;;
    *)
echo "Usage: `basename $0` {start|stop|restart|status}" 1>&2
exit 1
;;
esac
exit 0

2 комментария to “Установка и настройка PostgreSQL на хостинге NIC.ru.”

  1. admin Says:

    Бывает не хватает шаренной памяти (shared memory) для установки сервера.
    Проблема решается следующим образом.
    Смотрим используемую память и освобождаем ее:

    ipcs | grep login

    ipcrm -m byte

  2. myrz Says:

    uh-oh
    yes, it works 😀

Оставить комментарий

Вам надо войти чтобы оставить комментарий.