Реляционные системы управления базами данных (РСУБД) - это ключевой компонент многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации. PostgreSQL- это объектно-реляционная система управления базами данных, которая все больше и больше вытесняет MySQL и производственных серверов.
Её преимущество в множестве дополнительных функций и улучшений, таких как надежная передача данных и параллелизация без блокировок чтения. Вы можете использовать эту СУБД с различными языками программирования, а её синтаксис запросов PL/pgSQL очень похож на MySQL от Oracle. В этой статье мы рассмотрим, как выполняется установка PostgreSQL в Ubuntu 20.04 из официальных репозиториев и репозитория PostgreSQL (PPA) а так же, как выполнить первоначальную настройку и подготовку к работе c данной СУБД.
Содержание статьи
Установка PostgreSQL в Ubuntu 20.04
1. Установка из официальных репозиториев
Это очень популярная СУБД, потому программа присутствует в официальных репозиториях. Для установки выполните следующие команды. Сначала обновите списки пакетов:
sudo apt update
Установите СУБД PostgreSQL:
sudo apt -y install postgresql
2. Установка из официальных репозиториев PostgreSQL
Если есть необходимость в получение самой последней версии, то необходимо добавить в систему официальный PPA от разработчиков PostgreSQL. Для этого выполните следующие команды:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Далее обновите списки пакетов, чтобы получить самую новую доступную версию:
sudo apt update
Установка PostgreSQL из PPA или официальных репозиториев выглядит одинаково:
sudo apt -y install postgresql
Настройка PostgreSQL в Ubuntu 20.04
После установки СУБД откройте терминал и переключитесь на пользователя postgres с помощью команды:
sudo -i -u postgres
Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию PostgreSQL использует концепцию ролей для аутентификации и авторизации.
Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки PostgreSQL пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:
psql
И посмотреть информацию о соединении:
\conninfo
Чтобы выйти наберите:
\q
Теперь рассмотрим, как создать другие роли и базы данных.
Создание роли postgresql
Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните команду:
createuser --interactive
Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.
Создание базы данных
Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя alex, то по умолчанию система попытается получить доступ к базе данных alex. Мы можем ее очень просто создать:
createdb alex
Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:
sudo su - alex
Заходим в консоль и смотрим информацию о подключении:
psql
\conninfo
Все верно сработало. Мы подключились с помощью роли alex к базе alex. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:
psql -d postgres
Все сработало верно, при условии, что все компоненты были настроены как описано выше.
Создание таблиц
Теперь, когда вы знаете, как подключится к базе данных PostgreSQL, давайте рассмотрим, как выполняются основные задачи. Сначала разберем создание таблиц для хранения некоторых данных. Для создания таблицы PostgreSQLиспользуется такой синтаксис:
CREATE TABLE имя_таблицы (имя_колонки1 тип_колонки (длина) ограничения, имя_колонки2 тип_колонки (длина), имя_колонки3 тип_колонки (длина));
Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:
Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит, что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.
Следующие колонки - обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец - дата создания.
Вы можете вывести все таблицы, выполнив команду:
\d
Здесь мы видим, что кроме нашей таблицы, существует еще одна переменная -playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:
\dt
Выводы
Теперь установка Postgresql в Ubuntu 20.04 завершена, и вы прошли краткий экскурс в синтаксис PgSQL, который очень похож на привычный нам MySQL, но имеет некоторые отличия. Если у вас остались вопросы, спрашивайте в комментариях!
Опечатка:
"Установка phpGPadmin" - PG.
Спасибо.
ОГРОМНОЕ спасибо за статью, для новичка в скюль самый раз. Очень хорошо объяснил все =)
спасибо, полезно
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
не работает команда выдает в консоли
E: Не удалось получить http://apt.postgresql.org/pub/repos/apt/dists/sylvia-pgdg/main/binary-amd64/Packages 404 Not Found [IP: 174.143.35.246 80]
просит пароль для postgres, я его не устанавливал, в чем соль?
+. Такая же проблема. Никакого пароля не ставил, а postgres его запрашивает.
postgres пароль, не?
postgres@vmlmj01 ~ $ sudo su - perspektiva
[sudo] пароль для postgres:
Попробуйте ещё раз.
[sudo] пароль для postgres:
Попробуйте ещё раз.
[sudo] пароль для postgres:
sudo: 3 попытки ввода неправильного пароля
не канает
oc может определять postgres как зарегистрированнгого юзера и требовать пароль. Как выход -изменить пароль при помощи sudo usermod.
Спасибо за сайт с лучшими статьями по линукс и не только. Подписался на рассылку.
oC может определять postgres как зарегистрированнгого юзера и требовать пароль. Как выход -изменить пароль при помощи sudo usermod.
Спасибо за сайт с лучшими статьями по линукс и не только. Подписался на рассылку.
sudo usermod тоже требует пароль.
У меня сработало вот так:
sudo -u postgres psql sergiy
Некропост, но... Сейчас устанавливаю постгрес по этой инструкции (текущая версия 12) и на шаге
"Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:
$ sudo su - sergiy "
происходит затык, как описано выше в комментариях. Просит пароль от пользователя postgres
Если пробовать так: "sudo -u postgres psql sergiy" из под основного пользователя то заходит в бд
" You are connected to database "sergiy" as user "postgres", а нам же надо зайти из под нового пользователя а не из под postgres
Что делаем не так? Спасибо!
тут ошибка,чтобы войти под новой ролью необходимо еще создать нового пользователя в системе LInux
вот выдержка из основной статьи на английском языке"Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:
sudo -u postgres createuser --interactive"
1 Чтобы выйти из командной строки PostgreSQL выполните следующую команду:
/q
2 Чтобы выйти из пользователя postgres выполните следующую команду:
exit
В статье
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add –
А должно быть так
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
(В статье тире, а должен быть дефис.)
Вот правильный вариант, сразу после как установили.
sudo su - postgres
psql -c "alter user postgres with password 'fdsvvfdv1w'"
createuser dbuser
createdb testdb -O dbuser - сразу назначаем владельца БД
$ psql testdb
testdb=#\password dbuser
тут вам предложет ввесть пароль и в рпинцепи всё!
sudo -u postgres psql postgres
# \password postgres
Enter new password:
Просто невероятно, что нет ни одной рабочей статьи по казалось бы популярной базе данных. Приходится ползать по комментариям чтобы только начальную настройку выполнить, ужас. Официальная документация и того хуже.
Спасение утопающих - дело рук самих утопающих
Следующим шагом будет установка пароля для пользователя postgres.
Выполните следующую команду в командной строке терминала для подключения к базе данных шаблонов PostgreSQL по умолчанию:
sudo -u postgres psql template1
Приведенная выше команда подключается к базе данных PostgreSQL template1 от имени пользователя postgres. Как только вы подключитесь к серверу PostgreSQL, вы увидите запрос SQL. Вы можете запустить следующую команду SQL в psql командной строке, чтобы настроить пароль для пользователя postgres.
ALTER USER postgres with encrypted password 'your_password';