Мне понадобилось установить PostgreSQL 11 на CentOS 7. Однако при попытке установить его командой ничего не вышло.
Выполним команду:
sudo yum install postgresql
Мы видим, что он предлагает установить 9-ю версию, так как у CentOS 7 в репозитории это максимальная версия:
Пробуем команду
sudo yum install postgresql11-server
Получим ответ, что пакет postgresql11-server отсутствует. Грустно, но это нас это не остановит.
Подключим репозиторий:
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-`rpm -E %{rhel}`-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Знак апострофа, который прописывается в команде, на клавиатуре находится на клавише «Ё».
Обновим список пакетов (создадим кэш метаданных):
sudo yum makecache -y
Установим PostgreSQL требуемой нам версии (сейчас устанавливаем 11-ю версию):
sudo yum install postgresql11-server
Инициализируем базу данных:
/usr/pgsql-11/bin/postgresql-11-setup initdb
Запускаем сервис, добавляем в автозапуск и смотрим статус:
sudo systemctl start postgresql-11
sudo systemctl enable postgresql-11
sudo systemctl status postgresql-11
Зададим пароль для системного пользователя postgres:
sudo passwd postgres
Переключаемся в системе на данного пользователя (заходим в систему под ним):
su - postgres
Подключимся к базе и сразу зададим пароль для пользователя баз данных postgres:
psql -c "ALTER USER postgres WITH PASSWORD 'postgres';"
Да, у нас два пользователя с одинаковым логином: один системный, другой в PostgreSQL.
Выходим из psql:
exit
Выходим из-под системного пользователя postgres:
exit
Чтобы мы могли подключаться к базам данных с других компьютеров необходимо настроить доступы к PostgeSQL.