Андрей Смирнов
Время чтения: ~10 мин.
Просмотров: 10

Как установить PostgreSQL на Ubuntu 18.04

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

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

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

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

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 с параметрами:

  • Хостhlocalhost (подключение к локальной БД);
  • Имя базы данных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.

Введение

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

PostgreSQL — это реляционная СУБД, базирующаяся на языке SQL. Ее используют на проектах разного масштаба, так как, с одной стороны, она совместима со многими Unix-подобными ОС (а также MacOS и Microsoft Windows), а с другой стороны, PostgreSQL обладает расширенной функциональностью.

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

Требования

Для выполнения инструкций из этой статьи у вас должен быть сервер с установленной ОС Ubuntu 18.04, пользователем, который может выполнять команды sudo, и базовым фаерволом.

ebf05bd060c3fd149a75a33120f10501b70f551d.png

Шаг 1: установка PostgreSQL

Установка выполняется стандартно с использованием утилиты apt, так как PostgreSQL по умолчанию есть в репозиториях Ubuntu.

Сначала обновите локальный индекс пакетов:

$ sudo apt update

А затем установите PostgreSQL вместе с пакетом –contrib, который содержит дополнительные полезные инструменты для работы с СУБД:

$ sudo apt install postgresql postgresql-contrib

Следующая задача после установки – проверить, правильно ли все работает, и увидеть, в чем PostgreSQL отличается от других похожих СУБД.

Шаг 2: использование ролей и баз данных

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

После установки СУБД настроена на использование идентичной (ident) аутентификации: роли PostgreSQL будут связаны с такими же аккаунтами в системах Unix/Linux. Если роль существует в PostgreSQL, то пользователь Unix/Linux с таким же именем сможет авторизоваться в СУБД под этой ролью.

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

Есть несколько способов того, как можно получить доступ к PostgreSQL через этот аккаунт.

Во-первых, вы можете переключиться на этот аккаунт:

$ sudo -i -u postgres

А дальше перейти в консоль PostgreSQL:

$ psql

Для того, чтобы выйти из нее, надо ввести:

q

И тогда вы вернетесь обратно в консоль Linux.

Во-вторых, можно выполнить нужную команду от аккаунта postgres без переключения аккаунтов, а с использованием sudo.

Например, попасть в консоль PostgreSQL можно всего одной командой, которая приведена ниже:

$ sudo -u postgres psql

Теперь перейдем к работе с ролями, так как зачастую для работы с PostgreSQL требуется больше, чем одна роль.

Шаг 3: создание новой роли

Для создания ролей используется команда createrole. Если использовать ключ —interactive, то у вас будет запрошено имя новой роли, а также будет задан вопрос о том, будет ли эта роль обладать правами суперпользователя.

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

$ createuser --interactive

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

$ sudo -u postgres createuser --interactive

Затем вам нужно будет выбрать имя для роли и решить, будут у нее права суперпользователя или нет.

Enter name of role to add: testuserShall the new role be a superuser? (y/n) y

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

$ man createuser

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

Шаг 4: создание новой базы данных

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

Если ранее вы создали роль testuser, то по умолчанию роль будет пытаться получить доступ к базе данных testuser. Для создания базы данных используется команда createdb. Авторизуйтесь под аккаунтом postgres и введите команду ниже:

createdb testuser

Команда без переключения аккаунта будет выглядеть следующим образом:

$ sudo -u postgres createdb testuser

Шаг 5: создание таблицы

Перейдем к работе с таблицами.

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

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

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

Существует много разных типов данных, например:

  • date — календарная дата;
  • int — стандартный целочисленный тип;
  • varchar — символьная строка переменной длины, которая указывается в скобках: varchar (50);
  • real — число одинарной точности с плавающей точкой;
  • point — геометрическая точка в плоскости.

Пример команды с заполненными данными:

CREATE TABLE weather (city        varchar(80),temp_lo     int,       -- минимальная температура дняtemp_hi     int,       -- максимальная температура дняprcp        real,      -- уровень осадковdate        date);

Дефисы используются для того, чтобы задать комментарий для столбца.

Можно задать комментарий и для таблицы:

COMMENT ON TABLE название_таблицы IS 'Это моя таблица.';

Если вы хотите удалить комментарий, то нужно ввести:

COMMENT ON TABLE mytable IS NULL;

Для того, чтобы посмотреть созданную таблицу, введите:

d

Шаг 6: добавление и удаление данных

Для добавления новой информации используется команда 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 ('Cheese', 9.99, 1);

В этом случае данные будут записаны в соответствующие указанные столбцы.

Для удаления данных используйте команду DELETE FROM. Если вы введете команду:

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

То будут удалены все строки, в которых значение выбранного столбца равняется заданному значению.

Пример команды:

DELETE FROM products WHERE price = 10;

Тут важно помнить, что команда без указания уточняющих данных удалит все строки таблицы:

DELETE FROM products;

Шаг 7: добавление и удаление столбцов

Для добавления столбцов используется команда ALTER TABLE:

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

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

Удалять столбцы тоже легко, просто замените ADD на DROP:

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

После этого указанный столбец и его данные будут удалены.

Вместо заключения

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

Заказывайте VDS для своих проектов в компании Timeweb: https://timeweb.com/ru/services/vds/Используемые источники:

  • https://eternalhost.net/base/vps-vds/ustanovka-postgresql-ubuntu
  • https://timeweb.com/ru/community/articles/kak-ustanovit-postgresql-na-ubuntu-18-04-1

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации