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