Как установить и использовать PostgreSQL 9.4 в Debian 8

Вступление

Реляционные базы данных являются краеугольным камнем организации данных для множества потребностей. Они приводят в движение все: от покупок в Интернете до запуска ракет. PostgreSQL - это почтенная, но все еще играющая база данных. PostgreSQL следует большей части стандарта SQL, имеет транзакции ACID, поддерживает внешние ключи и представления и все еще находится в активной разработке.

Если приложение, которое вы запускаете, нуждается в стабильности, качестве пакета и простом администрировании, Debian 8 (кодовое имя «Jessie») является одним из лучших кандидатов на распространение Linux. Он движется немного медленнее, чем другие «дистрибутивы», но его стабильность и качество хорошо известны. Если вашему приложению или службе требуется база данных, комбинация Debian 8 и PostgreSQL является одной из лучших в городе.

В этой статье мы покажем вам, как установить PostgreSQL на новый стабильный экземпляр Debian 8 и приступить к работе.

Предпосылки

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

Если не указано иное, все команды в этом руководстве должны выполняться от имени пользователя без полномочий root с привилегиями sudo. Чтобы узнать, как создавать пользователей и предоставлять им привилегии sudo, ознакомьтесь с Initial Server Setup с Debian 8.

Установка PostgreSQL

Перед установкой PostgreSQL убедитесь, что вы располагаете самой последней информацией из репозиториев Debian, обновив список пакетов apt следующим образом:

sudo apt-get update

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

Reading package lists... Done.

Есть несколько пакетов, которые начинаются с + postgresql:

  • + postgresql-9.4 +: серверный пакет PostgreSQL

  • + postgresql-client-9.4 +: клиент для PostgreSQL

  • + postgresql +: «метапакет» лучше объясняется в Debian Handbook или в http: //www.debian. org / doc / manual / maint-guide / [Руководство нового сопровождающего Debian]

Для непосредственной установки пакета + postgresql-9.4 +:

sudo apt-get install postgresql-9.4 postgresql-client-9.4

При появлении запроса введите + Y + для установки пакетов. Если все прошло нормально, пакеты теперь загружаются из репозитория и устанавливаются.

Проверка установки

Чтобы убедиться, что сервер PostgreSQL правильно установлен и работает, вы можете использовать команду + ps +:

# ps -ef | grep postgre

Вы должны увидеть что-то вроде этого на терминале:

postgres 32164     1  0 21:58 ?        00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/   postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
postgres 32166 32164  0 21:58 ?        00:00:00 postgres: checkpointer process
postgres 32167 32164  0 21:58 ?        00:00:00 postgres: writer process
postgres 32168 32164  0 21:58 ?        00:00:00 postgres: wal writer process
postgres 32169 32164  0 21:58 ?        00:00:00 postgres: autovacuum launcher process
postgres 32170 32164  0 21:58 ?        00:00:00 postgres: stats collector process

Успех! PostgreSQL успешно установлен и работает.

Доступ к базе данных PostgreSQL

В Debian PostgreSQL устанавливается с пользователем по умолчанию и базой данных по умолчанию, которые называются + postgres +. Чтобы подключиться к базе данных, сначала вам нужно переключиться на пользователя + postgres +, введя следующую команду при входе в систему как root (это не будет работать с доступом sudo):

su - postgres

Теперь вы должны быть зарегистрированы как + postgres +. Чтобы запустить консоль PostgreSQL, введите + psql +:

psql

Готово! Вы должны войти в консоль PostgreSQL. Вы должны увидеть следующее приглашение:

psql (9.4.2)
Type "help" for help.

postgres=#

Чтобы выйти из консоли psql, просто используйте команду + \ q +.

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

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

После установки PostgreSQL настроен на использование «аутентификации» аутентификации, что означает, что он связывает роли PostgreSQL с соответствующей системной учетной записью Unix / Linux. Если роль PostgreSQL существует, ее можно войти, войдя в соответствующую системную учетную запись Linux.

Процедура установки создала учетную запись пользователя с именем postgres, которая связана с ролью Postgres по умолчанию.

Для создания дополнительных ролей мы можем использовать команду + createuser +. Имейте в виду, что эту команду следует вводить как пользователь + postgres +, а не внутри консоли PostgreSQL:

createuser --interactive

По сути, это интерактивный сценарий оболочки, который вызывает правильные команды PostgreSQL для создания пользователя в соответствии с вашими требованиями. Он задаст вам несколько вопросов: название роли, должна ли она быть суперпользователем, должна ли роль создавать новые базы данных и сможет ли роль создавать новые роли. Страница + man + содержит больше информации:

man createuser

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

PostgreSQL настроен по умолчанию с ролями аутентификации, которые запрашиваются соответствующими системными учетными записями. (Вы можете получить более подробную информацию об этом на postgresql.org). Кроме того, предполагается, что для роли, к которой будет подключаться, будет существовать соответствующая база данных. Поэтому, если у меня есть пользователь с именем + test1 +, эта роль будет пытаться подключиться к базе данных с именем + test1 + по умолчанию.

Вы можете создать соответствующую базу данных, просто вызвав эту команду как пользователь + postgres +:

createdb test1

Новая база данных + test1 + теперь создана.

Подключение к PostgreSQL с новым пользователем

Предположим, что у вас есть учетная запись Linux с именем + test1 +, вы создали для нее соответствующую роль PostgreSQL + test1 + и создали базу данных + test1 +. Чтобы изменить учетную запись пользователя в Linux на + test1 +:

su - test1

Затем подключитесь к базе данных + test1 + как роль + test1 + PostgreSQL с помощью команды:

psql

Теперь вы должны увидеть приглашение PostgreSQL с вновь созданным пользователем + test1 + вместо + postgres +.

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

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

Во-первых, давайте создадим таблицу для хранения некоторых данных. Давайте создадим таблицу, которая описывает игровое оборудование.

Основной синтаксис этой команды примерно такой:

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

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

Вы можете узнать больше о том, как создавать и управлять таблицами в Postgres, в https://www.digitalocean.com/community/tutorials/how-to-create-remove-manage-tables-in-postgresql-on-a-cloud -server [Как создавать, удалять и управлять таблицами в PostgreSQL на облачном сервере] статья.

Для наших целей мы собираемся создать простую таблицу, подобную этой:

CREATE TABLE playground (
   equip_id serial PRIMARY KEY,
   type varchar (50) NOT NULL,
   color varchar (25) NOT NULL,
   location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
   install_date date
);

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

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

Затем мы даем столбцы для типа и цвета оборудования, каждый из которых не может быть пустым. Затем мы создаем столбец местоположения и создаем ограничение, которое требует, чтобы значение было одним из восьми возможных значений. Последний столбец - это столбец даты, в котором записана дата, когда мы установили оборудование.

Чтобы увидеть таблицы, используйте команду + \ dt + в приглашении psql. Результат будет похож на

            List of relations
Schema |    Name    | Type  |  Owner
--------+------------+-------+----------
public | playground | table | postgres

Как видите, у нас есть игровой столик.

Добавление, запрос и удаление данных в таблице

Теперь, когда у нас есть созданная таблица, мы можем вставить в нее некоторые данные.

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

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');

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

Следует также помнить, что мы не вводим значение для столбца + equip_id +. Это потому, что это генерируется автоматически при создании новой строки в таблице.

Затем мы можем вернуть добавленную информацию, набрав:

SELECT * FROM playground;

Выход должен быть

equip_id | type  | color  | location  | install_date
----------+-------+--------+-----------+--------------
       1 | slide | blue   | south     | 2014-04-28
       2 | swing | yellow | northwest | 2010-08-16

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

DELETE FROM playground WHERE type = 'slide';

Если мы снова запросим нашу таблицу:

SELECT * FROM playground;

Мы увидим, что наш слайд больше не является частью таблицы:

equip_id | type  | color | location | install_date
----------+-------+-------+----------+--------------
       1 | slide | blue  | south    | 2014-04-28

Полезные команды

Вот несколько команд, которые могут помочь вам понять вашу текущую среду:

  • * \? *: Получить полный список команд psql, включая те, которые не перечислены здесь.

  • * \ h *: получение справки по командам SQL. Вы можете выполнить это с помощью определенной команды, чтобы получить справку по синтаксису.

  • * \ q *: выйдите из программы psql и выйдите в приглашение Linux.

  • * \ d *: список доступных таблиц, представлений и последовательностей в текущей базе данных.

  • * \ du *: список доступных ролей

  • * \ dp *: список прав доступа

  • * \ dt *: список таблиц

  • * \ l *: список баз данных

  • * \ c *: подключиться к другой базе данных. Следуйте за этим по имени базы данных.

  • * \ password *: измените пароль для следующего имени пользователя.

  • * \ conninfo *: Получить информацию о текущей базе данных и подключении.

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

Заключение

Теперь у вас должна быть полнофункциональная база данных PostgreSQL, работающая в вашей системе Debian. Поздравляем! Здесь можно найти множество документации:

  • PostgreSQL Руководства

  • Установка пакета + postgresql-doc +: + sudo apt-get install postgresql-doc +

  • Файл + README + установлен в + / usr / share / doc / postgresql-doc-9.4 / tutorial / README +

Для получения полного списка поддерживаемых команд SQL в PostgreSQL перейдите по этой ссылке:

Для сравнения различных функций баз данных вы можете проверить:

Для лучшего понимания ролей и разрешений смотрите:

Related