Установка PostgreSQL 9.4.9 на Centos 7

Довольно недавно возник вопрос о поднятии PostgeSQL 9.4 на Linux систему. Выбор пал на новенький CentOS 7. Т.к. имхо по моему мнению и к сожалению опыту другие ОС семейств Linux работают не очень стабильно и частенько падают.

По какой-то причине адекватного и нормального мануала по установке последних версий PostgreSQL 9.4. я не нашёл. При установке уже  пропатченного Postgres с сайта 1С постоянно возникали ошибки, связанные либо с нехваткой каких-либо библиотек, либо проблемой с ICU, либо опять-таки возникала вот такая ошибка:

«ОШИБКА:  тип «mvarchar» не существует в символе 31
ОПЕРАТОР:  create table Config (FileName mvarchar(128) not null, Creation timestamp not null,  Modified timestamp not null, Attributes int not null, DataSize int8 not null, BinaryData bytea not null, PartNo int not null, PRIMARY KEY (FileName, PartNo))
«

Руки уже опускались после 5 дней мучений, и даже уже поставил Ubuntu Server 12.4.4, установил на неё PostgreSQL, и всё заработало верно. Но мы же упорные ребята. И  вдруг я вспомнил про своего давнишнего друга, с которым одно время работали в одной небольшой конторке, Миша, спасибо тебе огромное за помощь. Подсказал он мне следующее. Иди, говорит, вот на этот сайтик, там есть отличные сборки Postgre. И действительно, всё установилось на Ура!

А теперь по порядку про установку и первоначальную настройку.

1. После установки CentOS пишем:

[root@postgresqltest ~]# yum update

2. После успешного обновления устанавливаем необходимые для установки и настройки пакеты

[root@postgresqltest ~]# yum install wget mc icu libicu

3. Загружаем и устанавливаем PostgreSQL

[root@postgresqltest ~]# sudo rpm -ivh http://1c.postgrespro.ru/keys/postgrespro-1c-centos94.noarch.rpm && sudo yum install postgresql-pro-1c-9.4

4. После установки PostgreSQL нужно провести инициализацию БД

[root@postgresqltest ~]# service postgresql-9.4 initdb

5. Идём в директорию /var/lib/pgsql/9.4/data/ смотрим в файлы postgresql.conf и pg_hba.conf

В postgresql.conf должны быть установлены и раскомментированы следующие параметры:

listen_addresses = ‘*’

port = 5432

Смотрим в pg_hba.conf:

Ищем параметр IPV4 Local connections в нём меняем раскомментированный параметр host

host                              all                              all                            0.0.0.0/0                                 md5

6. Запускаем Postgre и прописываем его в автозагрузку

[root@postgresqltest ~]# service postgresql-9.4 start
[root@postgresqltest ~]# chkconfig postgresql-9.4 on

7. Прописываем в фаервол

[root@postgresqltest ~]# firewall-cmd --permanent --add-port=5432/tcp
[root@postgresqltest ~]# firewall-cmd --reload

8. Прописываем в SELINUX

[root@postgresqltest ~]# setsebool -P httpd_can_network_connect_db 1

9.  Прописываем для пользователя Postgres пароль

[root@postgresqltest ~]# su postgres
bash-4.1$ psql postgres
could not change directory to "/root/rpmbuild/SPECS"
psql (9.0.1)
Type "help" for help.

postgres=# alter user postgres with password '123456';
ALTER ROLE
postgres=# q
bash-4.1$ exit
exit

Где «123456» — пароль пользователя Postgres.

Собственно, на этом и всё. Если что-то забыл, не вините строго (Это мой первый пост здесь) и дописывайте в комментариях =) 

4 Comments

  1. oldcopy

    Начало улыбает:

    Т.к. имхо по моему мнению и к сожалению опыту другие ОС семейств Linux работают не очень стабильно и частенько падают.

    Дальше возникает один вопрос, зачем автор использует devel-версии пакетов, которые предназначены для разработки? Чтобы притащить по зависимостям нужные библиотеки? Так вместе с ними devel-пакеты притащат еще кучу ненужного хлама.

    Reply
  2. oldfornit

    не за что. И тоже улыбнуло начало.

    Reply
  3. ColaKola

    Ubuntu server 14.04 минимум аптайм до полу года, что я делаю не так?

    Reply
  4. DarkUser

    Спасибо, очень помогла статья!

    Reply

Leave a Comment

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