Установка PostgreSQL
Последняя версия bash-скрипта для установки БД тут. Но в чем-то он может быть сыроват, и гонять его не понимая "что и зачем" я бы не рекомендовал.
1. Запретить скачку плохих, негодных PG из стандартного репозитория:vi /etc/yum.repos.d/CentOS-Base.repo
exclude=postgresql*
2. Затем установить хороший, годный PG репозиторий:
yum localinstall http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm
Перед этим, проверить по адресу yum.postgresql.org актуальные по версии БД и обязательно по дистрибутиву ОС (например, для Centos и Oracle Linux нужны разные репозитории).
3. Установить сервер и другие нужные компоненты (рекомендуется devel и contrib):
yum install postgresql94-server postgresql94-contrib postgresql94-devel
или еще проще
yum install postgresql94*
4. Инициализировать базу:
/usr/pgsql-9.4/bin/postgresql94-setup initdb
4'. Если требуется nondefault PGDATA (default = /var/lib/pgsql/9.4/data), делаем следующее:
cp /usr/lib/systemd/system/postgresql-9.4.service /etc/systemd/system/postgresql-9.4.service
vim /etc/systemd/system/postgresql-9.4.service
Environment=PGDATA=/my_path
include /lib/systemd/system/postgresql-9.4.serviceПользователь postgres должен иметь права на всю иерархию каталогов в /mypath (например: 775)
Если есть желание оставить SELinux:
semanage fcontext -a -t postgresql_db_t "/my/new/location(/.*)?"
но я не пробовал (just turn it off :D)
А можно создать базу в стандартной директории, а после перенести файлы куда нужно, заменив их сим-линками.
5. Включить автозапуск демона при старте системы и запустить его:
systemctl enable postgresql-9.4
systemctl start postgresql-9.4
6. Сменить пароль пользователя postgres:
sudo -u postgres psql
alter user postgres password 'p@s$W0rd';
7. Разрешить подключения по сети:
Если планируется использование pgbouncer - пропускаем этот шаг, т.к. слушать сетевые подключения будет сам bouncer.
vi /var/lib/pgsql/9.4/data/postgresql.conf
listen_addresses = '*'
8. Разрешить аутентификацию по паролю.
vi /var/lib/pgsql/9.4/data/pg_hba.conf
host all all 127.0.0.1/32 trust
Этой строчки достаточно, если будет использоваться bouncer. Без него потребуется прописывать разрешение для подключений по сети:
host all all 192.168.0.1/16 md5
9. Перезапустить демон:
sudo systemctl restart postgresql-9.4
10. Разрешить PG связь через фаервол. Перед закрытием тега zone вставить строку:
sudo firewall-cmd --permanent --zone=public --add-service=postgresql
sudo firewall-cmd --reload
Для bouncer нужно отдельное разрешение на его порт.
Комментарии
Отправить комментарий