Установка postgreSQL из исходников в freeBSD

Установка postgreSQL из исходников в freeBSD

Я буду ставить postgreSQL из исходников по этому для начала нужно скачать сам архив, идем на сайт и качаем нужный Вам, я скачаю самый последний на момент написание статьи — версию 9.3.3:

# cd /usr/local/src/
# wget http://ftp.postgresql.org/pub/
source/v9.3.3/postgresql-9.3.3.tar.gz
# tar zxvf postgresql-9.3.3.tar.gz
# cd postgresql-9.3.3
# ./configure
# make && make install && make clean

Создадим юзера postgres, пароль у меня такой же будет:

# adduser postgres
# mkdir /usr/local/pgsql/data
# chown postgres /usr/local/pgsql/data
# su postgres
# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
# /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
# /usr/local/pgsql/bin/createdb test
# /usr/local/pgsql/bin/psql test

Устанавливаем класс postgres для юзера postgres:

# pw usermod postgres-L postgres

Отредактируем файл postgresql.conf:

# ee /usr/local/pgsql/data/postgresql.conf

 

listen_addresses = 'localhost'
port = 5432
# /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l logfile start

Создадим БД mgw для more.groupware:

# /usr/local/pgsql/bin/createdb -E <кодировка> mgw
# /usr/local/pgsql/bin/createdb -E KOI8  mgw

Пр. (<кодировка> — WIN, KOI8 или др.)

Создадим юзера mgw который будет использовать БД mgw:

# /usr/local/pgsql/bin/createuser -A -D -P mgw

Добавим сервис в автозагрузку ( отредактируем /etc/rc.conf):

# ee /etc/rc.conf
[...]
postgresql_enable="YES"
postgresql_data="/usr/local/pgsql/data"
postgresql_flags="-w -s -m fast"
postgresql_initdb_flags="--locale=ru_RU.UTF-8 --encoding=utf-8 --lc-collate=C"
postgresql_class="postgres"
[...]

Можно написать скрипт для старта, остановки ( стопа) и перезапуска постгре, для этого в/etc/rc.d/ создадим файл:

# ee /usr/local/etc/rc.d/postgresql.sh

вставляем следующий текст:

#! /bin/sh
# Установочный префикс (префикс для установки)
prefix="/usr/local/pgsql"
# Data directory
PGDATA="/usr/local/pgsql/data"
# Раскоментировать PGDATA, тот что внизу если вы скинете файл конфига postgresql.conf #в /home/postgres/db
#PGDATA="/home/postgres/db"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/serverlog"
# The path that is to be used for the script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# What to use to start up the postmaster (we do NOT use pg_ctl for this,
# as it adds no value and can cause the postmaster to misrecognize a stale
# lock file)
DAEMON="$prefix/bin/postmaster"
# What to use to shut down the postmaster
PGCTL="$prefix/bin/pg_ctl"
set -e
# Only start if we can find the postmaster.
# Parse command line parameters.
case $1 in
start)
echo -n "Starting PostgreSQL: "
if [ -x $PGCTL ]; then
su - $PGUSER -c "$PGCTL start -D '$PGDATA'"
fi
# echo "ok"
;;
stop)
echo -n "Stopping PostgreSQL: "
if [ -x $PGCTL ]; then
su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m smart -w"
fi
# echo "ok"
;;
restart)
echo -n "Stopping PostgreSQL: "
if [ -x $PGCTL ]; then
su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m smart -w"
fi
echo -n "Starting PostgreSQL: "
if [ -x $PGCTL ]; then
su - $PGUSER -c "$PGCTL start -D '$PGDATA'"
fi
# echo "ok"
;;
reload)
echo -n "Reload PostgreSQL: "
if [ -x $PGCTL ]; then
su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s"
fi
echo "ok"
;;
status)
if [ -x $PGCTL ]; then
su - $PGUSER -c "$PGCTL status -D '$PGDATA'"
fi
;;
*)
# Print help
echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2
# exit 1
;;
esac
#exit 0

Сменим права, для того чтобы можно запустить скрипт на выполнение, для этого выполним:

# chmod 755 /usr/local/etc/rc.d/postgresql.sh

Запустить скрипт можно так:

# /usr/local/etc/rc.d/postgresql.sh start

Посмотрим что все нормально работает для этого выполним:

# ps -aux | grep postgres

postgreSQL-grep

 Установка postgreSQL из исходников в freeBSD завершена!

Сейчас приведу инструкцию по использованию:

Есть 2 способа управлятьБД и юзерами PosgreSQL -это утилитки коммандной строки (createuser, createdb, dropuser, dropdb и др.) и интерактивный терминал. Юзанем интерактивный терминал psql для настроек прав доступа. Первую команду следует выполнять от root, т.к. в этом случае нам не потребуется пароль для пользователя pgsql:

# su postgres
$ psql -U pgsql template1

В качестве примера создам юзера test и БД test в которой он будет работать, для этого:

# create user test;

CREATE ROLE

# \du

Получим что то типа этого:

postgreSQL-template1

Я могу сменить права на юзера выполнив:

# alter user test superuser createrole createdb;

ALTER ROLE

# \du

А вернуть пользователю test права на изначальные права можно так:

# alter user test nosuperuser nocreaterole nocreatedb;

ALTER ROLE

# \du

Ограничивать доступы по паролям можно:

#\password test

Enter new password: (введите новый пароль)
Enter it again: (введите еще раз пароль)

Можно вкл что бы сервер делал проверку и запрашивал пароль при подключении к нему, для этого поправим файлик pg_hba.conf:

# ee /usr/local/pgsql/data/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
#Используйте "local" если Используете для Unix domain socket соединений только!
local       all          all                                    trust
# IPv4 для local :
host        all          all    127.0.0.1/32                     trust
# IPv6 для local:
host        all          all ::1/128                             trust

Как видно, изменяется 3 записи для «local» подключений. Все записи устанавливают отсутствие проверки пароля — «trust». Изменим его на «md5»:

# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local             all             all                                           md5
# IPv4 local connections:
host              all             all               127.0.0.1/32                md5
# IPv6 local connections:
host              all             all ::1/128                                   md5

После чего ребутнем сервер.

Пытаемся законектится к интерактивной оболочке. Как видно нас просят ввести пасс для юзера template1:

$ psql -U pgsql template1

Password: ‘сюда вводим пороль для этого юзера’
psql (9.0.0)
Type «help» for help.
template1=#

Создаем БД для test и назначаем его владельцем test:

# create database test;

CREATE DATABASE

# alter database test owner to test;

ALTER DATABASE

Так же можно выполнить это все одной строчкой:

# create database test owner=test;

CREATE DATABASE

Поглядим какие БД мы имеем, выполнив :

# \l

postgreSQL-l

Надеюсь что суть ясна. Получить документацию, можно выполнив команды «\h» и «\?». Посмотреть как пользоваться запросом можно следующим образом (для примера возьмём «drop user»):

# \h drop user

Command: DROP USER
Description: remove a database role
Syntax:
DROP USER [ IF EXISTS ] name [, …]

Графические средства для управления PostgreSQL

Существует пару способов использовать postgreSQL в графическом режиме:
1. Можно поставить и использовать PhpMyAdmin.
2. Можно поставить и использовать PgAdmin.
Позже я расскажу вам как их установить, как настроить и пользоваться ими.

Установка postgreSQL из исходников в freeBSD закончена, пользуйтесь. Надеюсь я нормаль пишу статейки, если есть какие то замечания, то напишите я исправлюсь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.