PostgeSQL — начало работы на Linux

Эта статья будет полезна новичкам и тем кто только пробует начать работать с реляционной базой данных Postgress., т.к. есть некоторые тонкости с первичной настройкой и подключением к этой СУДБ.

Если вы читаете эту статью, скорее всего у Вас итак достаточно опыта с установкой ПО из терминала, но на всякий случай приведем здесь эти шаги

Установка PostgeSQL

Важно, здесь и далее нам понадобиться программа sudo, ну либо выполнять все с правами root-а

Ubuntu

sudo apt update
sudo apt upgrade
sudo apt install postresql

CentOS 7

sudo yum install postgresql

Если потребуются расширения в работе, то

sudo yum install postgresql-contrib

Ошибка:

И вот после установки мы пробуем подключиться

andrey@cloudstorage:~$ psql
psql: FATAL:  role "andrey" does not exist

Эх, как же быть… К такому жизнь меня не готовила… Лично я много времени потратил для решения этой проблемы, когда только начинал знакомиться с этой СУДБ, например после установки MySQL сразу создается пользователь и запрашивается пароль для подключения к СУДБ и можно сразу работать.

Здесь же, по умолчанию, используется аутентификация операционной системы и чтобы подключиться к СУБД надо иметь такого же пользователя как и в ОС и базу данных с тем же названием(!), либо разрешить другой вид аутентификации в конфигурационных файлах что не рекомендуется, хотя бы на первых порах, т.к. лично я практически никогда не меняю поведение по умолчанию ибо потом это может доставить хлопот.

Пользователь, аутентификация операционной системы (т.е. линукс какой пользователь подключается, ведь он его сам проверил уже) и база данных с тем же именем необходимы для того, чтобы программы или вы сами могли работать с данными в вашей базе дополнительных настроек и паролей, легко и просто.

Забавно, но во время установки создается один суперпользователь СУБД с именем postgres и база данных для него, а после установки у вас нет доступа к СУДБ, ведь вы совсем другой «юзер». Очевидным решением проблемы является создание всего недостающего.

Используем интерактивный режим работы sudo

sudo -i -u postgres
createuser andrey -s -d;
exit

ключи -s -d говорят нам, что новый пользователь будет суперпользователем, и что надо создать для него сразу и базу данных, вместо них можно воспользоваться ключем —interactive, чтобы имя и привелегии с клавиатуры, тогда придется дополнительно создать базу с тем же именем.

А еще для подключения пользователя по localhost необходимо создать ему шифрованный пароль:

postgres=# ALTER USER andrey WITH ENCRYPTED PASSWORD 'qwerty1234';

Ну и вдруг базы данных для пользователя еще нет (а она должна быть обязательно!!!), то создайте ее:

postgres=# CREATE DATABASE andrey;

У меня все, надеюсь данная статься поможет вам сэкономить кучу времени.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *