Установка postgresql на Centos

Linux > Установка postgresql на Centos
17.12.2016 16:37:51



Статья:

Установка  postgresql на Centos

yum -y install postgresql-server postgresql

Сразу включим его в автозагрузку

systemctl enable postgresql

Инициализируем  postgresql-setup initdb

если какие  ошибки можно посмотреть  journalctl -xe

запускаем systemctl start postgresql

Теперь нам необходимо включить авторизацию и создать пользователей, так как по умолчанию подключение локально разрешено для любого авторизированного в системе пользователя. Для этого заходим в систему под пользователем postgres и запускаем консоль управления СУБД:

su postgres
psql

Пользователь "postgres" является root''ом в СУБД. Поэтому начнём с того, что создадим для него пароль:
ALTER ROLE postgres WITH PASSWORD ''your_super_password'';

Теперь возвращаемся в консоль и обратно в root''а, дважды нажав сочетание клавиш "ctrl+d".
Пора внести изменения в схему авторизации СУБД. Для этого нам потребуется отредактировать файл, расположенный по адресу/var/lib/pgsql/data/pg_hba.conf. Как обычно любым текстовым редактором:
nano /var/lib/pgsql/data/pg_hba.conf

В конце файла видим подобные строки:

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

Это как раз и есть разрешение с localhost заходить без авторизации. Меняем это на
Приводим всё к виду:

local   all             all                                     md5
host    all             all             127.0.0.1/32            md5

Ещё один момент. Если Вам нужно удаленное подключение, думаю, понятно, что необходимо действовать по аналогии и добавить строку:
host    all             all             123.456.678.910/24            md5
Дополнительно = необходимо будет указать СУБД прослушивать требуемые адреса.

  cd /var/lib/pgsql/data/

 Делается это в файле конфигурации postgresql.conf. Находим строку:
#listen_addresses = ''localhost''
и приводим к виду:
listen_addresses = ''*''

 

Пропишем разрешение  в firewalld

firewall-cmd --permanent --zone=public --add-service=postgresql

firewall-cmd --reload

и проверим  firewall-cmd --permanent --list-all

Теперь можно немного поработать и проверить

su postgresql

psql

Создадим тестовую базу данных и тестового пользователя:

postgres=# CREATE DATABASE test_database;
CREATE DATABASE

postgres=# CREATE USER test_user WITH password ''qwerty'';
CREATE ROLE

postgres=# GRANT ALL privileges ON DATABASE test_database TO test_user;
GRANT

Для выхода из оболочки введите команду \q.