8(499)-709-97-83
Работаем с 8:00 до 19:00

Установка PostgreSQL 9.4 на Centos 6.5 / 7

  • 21 июля 2015

В этой статье мы расскажем как установить базу данных PostgreSQL 9.4 на операционную систему Centos 6.5 / 7. Почему выбор пал на PostgreSQL? Пообщавшись с администраторами баз данных, было принято решение попробовать поработать на данной БД, т.к. в отличие от MySQL, PostgreSQL обладает лучшей производительностью и гибкостью настроек.

Как всегда, немного теории.

PostgreSQL это Open Source объектно-реляционная база данных, она развивается уже более 15 лет. PostgreSQL поддерживает такие операционные системы, как Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) и Windows, поддерживает типы данных: INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, и TIMESTAMP, так же БД поддерживает хранение больших объектов данных, включая изображения, звуки и видео. PostgreSQL поддерживает языки програмирования C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC и многие другие.

Теперь перейдем к установке PostgreSQL.

1) Репозитарии PostgreSQL лежат на официальном сайте здесь. В нашем случае мы используем архитектуру x86_x64 под Centos 6.5. Добавляем репозитарий в Centos:

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

Для версии Centos i386:

rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-6-i386/pgdg-centos94-9.4-1.noarch.rpm

Для Centos 7:

rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm

2) Обновляем систему.

yum update

3) Установим PostgreSQL и некоторые утилитки:

yum install postgresql94-server postgresql94-contrib postgresql94-libs postgresql94-devel

Введем еще раз команду:

yum update

4) Инициализируем базу данных PostgreSQL.

service postgresql-9.4 initdb

В Centos 7 выполняем следующую команду:

/usr/pgsql-9.4/bin/postgresql94-setup initdb

5) Запускаем сервис и добавляем в автозагрузку.

service postgresql-9.4 start
chkconfig postgresql-9.4 on

В Centos 7 выполняем следующее:

systemctl enable postgresql-9.4
systemctl start postgresql-9.4

На этом установка закончена. Теперь сделаем дополнительные настройки.

6) Настроим IPTABLES. Для этого добавим в файл /etc/sysconfig/iptables следующие строчки:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

Перезапускаем сервис IPTABLES

service iptables restart

В Centos 7 надо сделать следующее:

firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload

При включенном SELinux, так же необходимо будет ввести следующую команду:

setsebool -P httpd_can_network_connect_db 1

7) Отредактируем файл /var/lib/pgsql/9.4/data/postgresql.conf.

nano /var/lib/pgsql/9.4/data/postgresql.conf

В строке listen_addresses = 'localhost' заменим localhost на "*". Должно получится следующее listen_addresses = '*'. Это говорит PostgreSQL принимать запросы со всех интерфейсов.

8) Далее редактируем файл /var/lib/pgsql/9.4/data/pg_hba.conf. В конце файла добавляем строчку

host all all 192.168.1.0/24 md5

Этим мы даем возможность подключатся к PostgreSQL из нашей локальной сети 192.168.1.0, 255.255.255.0, используя алгоритм MD5.

Перезапускаем службу PostgreSQL

service postgresql-9.4 restart

9) В течении установки PostgreSQL добавляет пользователя "postgres", и вся первоначальная работа ведется от данного пользователя. Переключаемся на пользователя postgres. И создадим нового пользователя asterisk.

su postgres
createuser -sdrP asterisk

Потребуется дважды ввести пароль для нового пользователя.

10) Для подключения к PostgreSQL, необходимо ввести следующую команду:

su postgres# psql

Появится окно диалога

psql (8.4.20, server 9.4.1)
WARNING: psql version 8.4, server version 9.4.
Some psql features might not work.
Type "help" for help.

postgres=#

*Как обновить psql до версии PostgreSQL, я сходу не понял. Если напишите в комментариях, буду благодарен.

Для выхода из диалогового она наберите:

postgres=#  \q

Для установки пароля на пользователя postgres, сделайте следующее:

postgres=# \password postgres 
Enter new password:
Enter it again:
postgres=# \q

11) Ну и напоследок, создадим базу данных asteriskcdrdb и дадим пользователю asterisk права на эту базу.

su postgres
# createdb asteriskcdrdb
#psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE asteriskcdrdb TO asterisk;
 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: Asterisk