PostgreSQL – кроссплатформенная СУБД с расширенной функциональностью, и открытым исходным кодом. Она совместима со многими операционными системами. Чтобы установить PostgreSQL на Ubuntu, потребуется уже развернутая операционная система, пользователь с привилегиями sudo и базовый файрвол.

В статье рассмотрим установку, настройку и удаление на Ubuntu PostgreSQL версии 11.1.

Установка PostgreSQL

Установить PostgreSQL можно непосредственно из репозитория Ubuntu. По умолчанию его пакеты уже находятся в операционной системе. Перед установкой нужно сначала выполнить их обновление командой:

sudo apt update

Далее следует установка самого ПО совместно с пакетом contrib, в котором содержаться дополнительные инструменты и утилиты:

sudo apt  install postgresql postgresql-contrib

Установка PostgreSQL на Ubuntu 18.04 завершена.

Подключение к СУБД

В процессе инсталляции, программа автоматически создает пользователя базы данных с правами администратора – postgres. Войти в СУБД на данный момент можно только через эту учетную запись. Следует добавить созданного пользователя в группу sudo:

usermod -a -G sudo postgres

Установить для него пароль:

passwd postgres

Выполнить запуск оболочки программы, можно переключившись на сессию учетной записи. Для этого используется команда:

sudo su - postgres
psql

Ее можно также запустить, не переключая сессию от имени postgres:

sudo -u postgres psql

Для выхода из командной строки нужно ввести команду:

\q

Подключение PostgreSQL по сети

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

Для этого нужно открыть файл postgresql.conf:

nano /etc/postgresql/10/main/postgresql .conf

Найти строчку:

 #listen_addresses = ’localhost’

Здесь необходимо произвести замену параметра «’localhost’» в зависимости от того, сколько интерфейсов нужно прослушивать. Например, если нужна прослушка всего перечня доступных интерфейсов, то вписываем параметры «000.00.0.0»:

listen_address = ’000.00.0.0’

Если же требуется прослушивать конкретный IP, то нужно вписать именно этот адрес (например — 194.61.0.6):

listen_address = ’194.61.0.6’

Теперь нужно создать правила авторизации для безопасного подключения. Для этого добавить строку в файле /etc/postgresql/10/main/pg_hba.conf:

host     all     all     192.168.0.10/32     password

Где вместо 192.168.0.10/32 вписывается адрес (с маской подсети), откуда идет подключение к базе данных.

Выполняется сохранение и перезапуск PostgreSQL:

systemctl restart postgresql

На этом настройка PostgreSQL на Ubuntu закончена.

Создание ролей

Часто для работы с БД возникает необходимость нескольких учетных записей.

Чтобы создать нового пользователя, используется команда createuser. Для работы в интерактивном режиме применяется ключ –interactive. При этом будет запрошено имя новой роли и права суперпользователя.

После того, как выполнен вход в аккаунт под пользователем postgres, нужно создать новую роль:

 createuser --interactive

Если не нужно переключать аккаунты, то предыдущую команду нужно записать так:

sudo -u postgres createuser --interactive

После этого выбирается имя новой учетной записи и задаются такие параметры, как привилегии суперпользователя, разрешение на создание БД и возможность создавать роли:

Enter name of role to add: cloud
Shall the new role be a superuser? (y/n) n
Shall the new role be a allowed to create databases? (y/n) y
Shall the new role be a allowed to create more new roles? n

Если понадобится сделать больше настроек, то с помощью следующей команды можно просмотреть все ключи:

;lmm man createuser

Создание новой базы данных

При создании базы данных, важно не забыть, что она имеет такое же название, как и пользователь под которым происходит авторизация. Ранее была создана роль testuser, значит такое же имя нужно дать и для  базы данных. Для этого после авторизации под пользователем postgres, следует ввести команду:

createdb testuser

Если не требуется переключение аккаунта, то вводится команда:

$ sudo -u postgres createdb testuser

Создание таблицы

Базовая команда для создания таблицы выглядит так:

CREATE TABLE table_name (
column_name1 col_type (field_lenght) column_constraints,
column_name2 col_type (field_lenght),
column_name3 col_type (field_lenght)
);

Изначально присваивается имя таблице, потом дается название столбцам, указывается их тип, и длина значений.

Посмотреть готовую таблицу можно с помощью команды:

\d

Добавление и удаление данных

Чтобы добавить данные в таблицу применяется команда INSERT INTO. Это можно сделать двумя способами.

Первый, короткий вариант:

INSERT INTO название_таблицы VALUES (1, ’Milk’, 9.99);

Здесь главное не забывать про последовательность столбцов, для правильного введения значения.

В другом способе в команде указываются столбцы:

INSERT INTO название_таблицы (product_no, name, price) VALUES (1, ’Cheese’ 9.99);
INSERT INTO название_таблицы (name, price, product_no) VALUES (1, ’Cheese’ 9.99? 1);

Чтобы удалить записи, нужно использовать следующую команду:

DELETE FROM название_таблицы WHERE название_столбца = значение;

После выполнения этой команды, строки в которых будут заданы значения столбцов, удалятся:

DELETE FROM products WHERE price = 10;

Если данные значений не нужно указывать, тогда следует удалить все строки таблицы:

DELETE FROM products;

Добавление и удаление столбцов

При добавлении столбцов следует использовать команду:

ALTER TABLE название_таблицы ADD название_нового_столбца тип_столбца;

По завершении команды будет создан новый столбец с заданным названием.

Чтобы его удалить, следует выполнить команду:

ALTER TABLE название_таблицы DROP название_существующего столбца;

Теперь можно приступить к работе с базой данных. Для подключения к ней нужно запустить psql с параметрами:

  • Хост h localhost (подключение к локальной БД);
  • Имя базы данных testuser;
  • Имя пользователя username.

Общий вид команды:

psql -h localhost testuser_db username

Теперь установка и настройка PostgreSQL на Ubuntu завершена. Можно полноценно взаимодействовать с СУБД: создавать таблицы, делать выборки и хранить информацию.

Чтобы удалить PostgreSQL из Ubuntu, необходимо выполнить последовательность определенных команд:

sudo apt-get --purge remove pgadmin3
sudo apt-get --purge remove postgresgl\*
sudo rm -rf /etc/postgresgl
sudo rm -rf /etc/postgresgl-common
sudo rm -rf /var/lib/postgresgl
sudo userdel -r postgres
sudo groupdel postgres

Теперь СУБД PostgreSQL удалена из Ubuntu.