Содержание
- 1 Установка PostgreSQL
- 2 Подключение к СУБД
- 3 Подключение PostgreSQL по сети
- 4 Создание ролей
- 5 Создание новой базы данных
- 6 Создание таблицы
- 7 Добавление и удаление данных
- 8 Добавление и удаление столбцов
- 9 Введение
- 10 Требования
- 11 Шаг 1: установка PostgreSQL
- 12 Шаг 2: использование ролей и баз данных
- 13 Шаг 3: создание новой роли
- 14 Шаг 4: создание новой базы данных
- 15 Шаг 5: создание таблицы
- 16 Шаг 6: добавление и удаление данных
- 17 Шаг 7: добавление и удаление столбцов
- 18 Вместо заключения
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, и базовым фаерволом.
Шаг 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