Установка\Настройка СУБД Postgresql 9.5\9.6 в Centos\RHEL

Блог X-MSN  > Postgresql, СУБД >  Установка\Настройка СУБД Postgresql 9.5\9.6 в Centos\RHEL
0 комментариев

Для начала, добавить репозитории Postgresql версий 9.5\9.6:

Для Centos 6:

Postgresql 9.6

rpm -Uvh https://yum.postgresql.org/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Postgresql 9.5

rpm -Uvh https://yum.postgresql.org/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-3.noarch.rpm

Для Centos 7:

Postgresql 9.6

rpm -Uvh https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Postgresql 9.5

rpm -Uvh https://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-3.noarch.rpm

Установить компоненты СУБД:

Postgresql 9.6

yum install -y  postgresql96 postgresql96-server postgresql96-libs postgresql96-contrib postgresql96-devel

Postgresql 9.5

yum install -y  postgresql95 postgresql95-server postgresql95-libs postgresql95-contrib postgresql96-devel

Добавить Postgresql в список автозагрузки:

Postgresql 9.6

chkconfig postgresql-9.6 on

Postgresql 9.5

chkconfig postgresql-9.5 on

Инициализировать СУБД:

Postgresql 9.6

service postgresql-9.6 initdb

Аналогичная команда в случае если первая не сработала:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

Postgresql 9.5

service postgresql-9.5 initdb

Аналогичная команда в случае если первая не сработала:

/usr/pgsql-9.5/bin/postgresql95-setup initdb

Внести изменения в конфигурационные файлы:

vim /var/lib/pgsql/9.6/data/pg_hba.conf
vim /var/lib/pgsql/9.5/data/pg_hba.conf

Привести их в виду:

local   all             all                                   trust
host    all             all             127.0.0.1/32          trust
host    all             all             192.168.0.0/16        trust
host    all             all             ::1/128               trust

Внести изменения в основной конф. Файл:

vim /var/lib/pgsql/9.6/data/postgresql.conf

vim /var/lib/pgsql/9.5/data/postgresql.conf

Принимать подключения со всех IP адресов:

listen_addresses = '*'

port = 5432

Запустить Postgresql:

/etc/init.d/postgresql-9.6 start
/etc/init.d/postgresql-9.5 start

ИЛИ

service postgresql-9.6 start
service postgresql-9.5 start

Создание БД в кодировке UTF-8:

Из терминала Linux (все пишется в одну строку):

createdb -e -U postgres bd_name -E UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8 -T template0;

Из консоли Postgresql:

psql -U postgres

CREATE DATABASE bd_name WITH ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;

Проверяем созданные БД:                       postgres=# \l+
Выход из консоли Postgresql:                   postgres=# \q

Создание ролей :

echo "create role name_role with login createdb" | psql -U postgres;

Удаление баз данных Postgresql:

Из терминала Linux

dropdb db_name;

Из консоли Postgres:

drop database db_name;

Переименование БД:

alter database test rename to test1;

Создание резервной копии БД Postgresql:

pg_dump -U postgres -v -Ft db_name | gzip -9 >> db_name-$(date +%d.%m.%Y).tar.gz

Восстановим базы из директорий:

pg_restore -U postgres -d db_name -F d /путь/до/распакованного_дампа

Возможные проблемы при удалении базы:

postgres=# DROP DATABASE db_name;

ERROR:  database «db_name» is being accessed by other users
DETAIL:  There is 1 other session using the database.

Решение (все пишется в одну строку):

select pg_terminate_backend (pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = 'db_name';

Список сессий:

SELECT * from pg_stat_activity;

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

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

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