Как установить и настроить PostgreSQL 9.6 / Postgres Pro 9.6 на CentOS 7
Представляю свой вариант установки PostgreSQL 9.6 / Postgres Pro 9.6 на операционную система CentOS 7.
Установка
[root@anart ~]# yum install postgresql-server postgresql-contrib
Инициализация кластера баз
[root@anart ~]# /usr/pgsql-9.6/bin/postgresql96-setup initdb
После этого в /var/lib/pgsql/9.5/data появятся файлы кластера.
Раздаем права авторизации
Правим /var/lib/pgsql/9.6/data/pg_hba.conf. Приводим IPv4 настройки к следующему виду
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.137.0/24 md5
где 192.168.137.0/24 - диапазон хостов, откуда могут подключаться пользователи по паролю. У вас соответственно свои диапазоны.
В /var/lib/pgsql/9.6/data/postgresql.conf указываем, какие интерфейсы будем слушать
listen_addresses = '*'
...
log_timezone = 'Europe/Moscow'
...
datestyle = 'iso, dmy'
...
timezone = 'Europe/Moscow'
...
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
...
default_text_search_config = 'pg_catalog.russian'
Старт сервера и автозагрузка
[root@anart ~]# systemctl start postgresql-9.6
Если есть ошибки, смотрим тут /var/lib/pgsql/9.6/data/pg_log/
[root@anart ~]# systemctl enable postgresql-9.6
Проверяем статус службы
[root@anart ~]# systemctl status postgresql-9.6
...
Active: active (running)
...
Заходим под пользователем postgres. Он является суперадминистратором
[root@anart ~]# sudo -i -u postgres
заходим в консоль базы данных
-bash-4.2$ psql
Должны увидеть нечто
psql (9.6.0)
Type "help" for help.
postgres=#
команды, которые можно здесь выполнить:
\q - выход
\l - Листинг баз данных
\c mame - Переключиться к базе name
\password - сменить пароль текущего пользователя
\conninfo - Вывод информации о текущем коннекте. Нужно находиться в какой либо базе.
Меняем пароль пользователя postgres
postgres=# \password
Enter new password:
Enter it again:
postgres=#
Создаем пользователя и базу
Находясь в консоли postgres, выполняем несколько SQL запросов для создания пользователя (роли) и и базы
Создаем пользователя
postgres=# CREATE USER myuser WITH password 'mypassword';
CREATE ROLE
Создаем базу
postgres=# CREATE DATABASE "mydb"
WITH OWNER = myuser
ENCODING = 'UTF8'
TEMPLATE = 'template0'
TABLESPACE = pg_default
LC_COLLATE = 'ru_RU.UTF-8'
LC_CTYPE = 'ru_RU.UTF-8'
CONNECTION LIMIT = -1;
CREATE DATABASE
Устанавливаем все привилегии для myuser по отношению к базе mydb
postgres=# GRANT ALL ON DATABASE mydb TO myuser;
Еще один способ создать базу. Выполнить createdb под пользователем в bash среде:
-bash-4.2$ createdb mydb -T template0 -l ru_RU.UTF-8 -E UTF-8 -O myuser
Подробнее о createdb можно узнать набрав man createdb.
Можем пробовать подключиться к серверу с помощью менеджера. Я использую PgAdmin III.