По какой-то причине адекватного и нормального мануала по установке последних версий 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.
Собственно, на этом и всё. Если что-то забыл, не вините строго (Это мой первый пост здесь) и дописывайте в комментариях =)