Устанавливаем PostgreSQL 9.4 на Centos 6.5

Статья повествует о том, как установить PostgreSQL 9.4 на Centos 6.5.

Для начала редактируем файл /etc/yum.repos.d/CentOS-Base.repo и добавляем следующую строку в секции [base] и [updates]

exclude=postgresql*

Включаем дополнительный репозиторий:

yum localinstall http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm -y

Ставим PostgreSQL:

yum install postgresql94-server postgresql94-contrib postgresql-devel -y

После завершения установки - добавляем в автозапуск и стартуем:

chkconfig postgresql-9.4 on  
service postgresql-9.4 initdb  
service postgresql-9.4 start

Теперь нужно создать пользователя и базу даных в PostgreSQL.
Меняем активного пользователя на postgres и подключаемся в консоль:

su - postgres  
psql

Создаем базу и разрешаем пользователю с ней работать:

CREATE DATABASE **dbname**;  
CREATE USER **dbuser** WITH PASSWORD '**myPassword**';  
GRANT ALL PRIVILEGES ON DATABASE **dbname** to **dbuser**;  

Нажимаем Ctrl+D что бы вернуться назад в сессию пользователя root.

Что бы удостовериться что пользователь создан нормально выполните:

psql -U**dbuser** -d**dbname** -hlocalhost -W

С большой вероятностью Вам выдаст следующую ошибку:

psql: FATAL: Ident authentication failed for user `djangodbuser`

Для того что бы ее устранить откройте для редактирования файл /var/lib/pgsql/9.4/data/pg_hba.conf, найдите в нем следующие строки и замените ident на password:

host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

После сохранения файла перезапустите PostgreSQL:

service postgresql-9.4 restart

Можно повторить:

psql -U**dbuser** -d**dbname** -hlocalhost -W

Все должно работать. Если не работает - оставьте коментарий.

Драйвер PostgreSQL для PHP

Устанавливается через pecl:

pecl install pdo_pgsql

Слудущая ошибка при установке - не смертельна:

configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path  
configure: error: Cannot find libpq.so. Please specify correct PostgreSQL installation path

Фиксы:

ln -s /usr/pgsql-9.4/include/libpq-fe.h /usr/local/include/libpq-fe.h  
ln -s /usr/pgsql-9.4/lib/libpq.so /usr/local/lib/libpq.so

Следующей ошибкой может выскочить:

/var/tmp/PDO_PGSQL/php_pdo_pgsql_int.h:27:28: error: libpq/libpq-fs.h: No such file or directory  
/usr/local/include/libpq-fe.h:29:26: error: postgres_ext.h: No such file or directory

И вообще оно будет плеваться, что не может найти то или другое. Устраняется:

for f in $(ls /usr/pgsql-9.4/include/); do  
  ln -s /usr/pgsql-9.4/include/$f /usr/local/include/$f;
done

Драйвер PostgreSQL для python:

pip install psycopg2

Слудущая ошибка при установке - не смертельна:

Error: pg_config executable not found.

Фикс:

ln -s /usr/pgsql-9.4/bin/pg_config /usr/local/sbin/pg_config