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.