WebWost WebWostbeta

PostgreSQL

Сборка и базовая настройка PostgreSQL

Al-Sher

Давненько ничего не писал... Нужно исправляться... Давайте установим PostgreSQL на мой новенький сервер от Reg.Ru ? ОС на сервере - CentOS 7. На другие ОС процесс схож и описан на данной странице.

Установка

Конечно процесс установки описан по ссылке выше, но, всё же, я повторю его и тут. Для начала установим RPM репозиторий:

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Теперь установим клиент и сервер postgreSQL:

yum install postgresql96 postgresql96-server -y

Ну и напоследок инициализируем нашу Базу Данных:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

Если всё хорошо, то в ответ Вы должны получить следующий ответ: > Initializing database ... OK

Давайте добавим наш PostgreSQL в автозапуск и запустим его:

systemctl enable postgresql-9.6
systemctl start postgresql-9.6

Ну вот, вроде и закончен весь процесс установки ?

Postgres

В данный момент у нас имеется пользователь postgres. Он предназначен для работы с нашей БД. Давайте авторизуемся:

su postgres

После авторизации мы попадаем в bash-оболочку. Для начала давайте установим нашему пользователю пароль. Зайдем в Базу Данных

psql

И введем такой SQL-запрос:

ALTER ROLE postgres WITH PASSWORD 'password';

Где password - пароль нашего пользователя. Выходим из БД:

\q

Теперь попробуем создать еще одного пользователя, например newuser:

createuser -DSRP newuser

Нас попросят ввести пароль и повторить его. Давайте подарим нашему пользователю еще и Базу Данных:

createdb -O newuser newdb

Флаг O говорит postgresql'ю то, что мы хотим отдать базу данных newdb пользователю newuser. Если мы сейчас попробуем авторизоваться, то сервер будет отвечать > psql: FATAL: Peer authentication failed for user "newuser"

Связано это с тем, что у нас отключена авторизация по паролю. Давайте включим её:

exit
nano /var/lib/pgsql/9.6/data/pg_hba.conf

И приводим строки:

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

К виду:

local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Не забываем перезагрузить сервер:

systemctl restart postgresql-9.6

Пробуем подключиться теперь:

 psql -U newuser -d newdb

И... У нас всё работает ✌ Кстати, если не указывать флаг -d, то psql попытается подключиться к БД с таким же названием, что и пользователь.

Завершение

На этом я хочу закончить данный пост, ведь мы уже изучили базовую настройку PostgreSQL

0 комментариев

Новый комментарий