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

Установка и первичная настройка PostgreSQL на Ubuntu 16.04

Привет! Материал сегодня будет посвящен рассмотрению процесса установки СУБД PostgreSQL 10 на серверную операционную систему Linux Ubuntu Server, а также первоначальной настройки PostgreSQL 10, для того чтобы можно было ее использовать, например, в сети своей организации.

Другими словами, сейчас мы с Вами реализуем сервер баз данных на базе Linux Ubuntu Server и PostgreSQL 10, который будет иметь базовую настройку. Если Вас интересует реализация подобного сервера только на базе операционной системы CentOS 7.1, то можете ознакомиться с материалом «Установка PostgreSQL 9.4 на CentOS 7.1», в нем мы как раз рассматривали данный процесс.

Install_PostgreSQL_10_on_Ubuntu_Server_1.jpg

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

Примечание!10 версия PostgreSQL была актуальна на момент написания статьи, на текущий момент доступны новые версии.

Содержание

Что нового в PostgreSQL 10?

Начиная с PostgreSQL 10, меняется схема нумерации версий, это вызвано тем, что раньше выходило множество минорных версий (например, 9.x), многие из которых на самом деле вносили значительные изменения не соответствующие минорным, теперь мажорные версии будут нумероваться 10, 11, 12, а минорные 10.1, 10.2, 11.1 и так далее.

Основные нововведения:

  • Логическая репликация с использованием публикации и подписки — теперь возможно осуществлять репликацию отдельных таблиц на другие базы, это реализовывается с помощью команд CREATE PUBLICATION и CREATE SUBSCRIPTION;
  • Декларативное партиционирование таблиц – в PostgreSQL 10 добавился специальный синтаксис для партиционирования, который позволяет легко создавать и поддерживать таблицы с интервальной или списочной схемой партиционирования;
  • Улучшенный параллелизм запросов – другими словами, появилась дополнительная оптимизация запроса, для того чтобы пользователь получал данные быстрей;
  • Аутентификация пароля на основе SCRAM-SHA-256 – добавился новый метод аутентификации, который является более безопасным, чем метод с использованием MD5;
  • Quorum Commit для синхронной репликации – теперь администратор может указать что, если какое-либо количество реплик подтвердило, что внесено изменение в базу данных, данное изменение можно считать надёжно зафиксированным;
  • Значительные общие улучшения производительности;
  • Улучшенный мониторинг и контроль.

Более детально обо всех нововведениях можете почитать на официальном сайте – PostgreSQL 10.

Установка PostgreSQL 10 на Linux Ubuntu Server 16.04

Как Вы уже, наверное, поняли рассматривать процесс установки и соответственно настройки PostgreSQL 10 мы будем на примере версии Ubuntu Server 16.04, так как эта версия имеет долгосрочную поддержку и на текущий момент является актуальной среди LTS версий.

Шаг 1

Установку и настройку PostgreSQL необходимо осуществлять с правами суперпользователя, поэтому давайте сразу переключимся на пользователя root. Для этого вводим sudo -i (или sudo su) и жмем Enter.

Install_PostgreSQL_10_on_Ubuntu_Server_2.jpg

Шаг 2

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

        apt-cache search postgresql-10    

Install_PostgreSQL_10_on_Ubuntu_Server_3.jpg

Как видим, в Ubuntu Server 16.04 10 версии PostgreSQL нет, поэтому нам нужно подключить необходимый репозиторий, в котором присутствует PostgreSQL 10. Если у Вас более новая версия Ubuntu Server и в стандартных репозиториях есть 10 версия PostgreSQL, то дополнительный репозиторий Вам подключать не нужно, т.е. данный шаг Вы пропускаете.

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

После перехода на страницу выбираете версию Ubuntu, после чего у Вас отобразится адрес нужного репозитория.

Install_PostgreSQL_10_on_Ubuntu_Server_4.jpg

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

        sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'    

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

        wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -    

Далее обновляем список пакетов.

        apt-get update    

Install_PostgreSQL_10_on_Ubuntu_Server_5.jpg

И еще раз проверяем наличие пакета с PostgreSQL 10.

        apt-cache search postgresql-10    

Install_PostgreSQL_10_on_Ubuntu_Server_6.jpg

Теперь нужный пакет у нас есть, и мы можем переходить к установке PostgreSQL 10.

Шаг 3

Для установки PostgreSQL 10 пишем следующую команду.

        apt-get -y install postgresql-10    

Install_PostgreSQL_10_on_Ubuntu_Server_7.jpg

По окончанию процесса установки проверяем, запущен ли сервер PostgreSQL.

        systemctl status postgresql    

Install_PostgreSQL_10_on_Ubuntu_Server_8.jpg

Как видим, PostgreSQL 10 установился и работает.

Базовая настройка PostgreSQL 10 в Linux Ubuntu Server

После установки нам необходимо выполнить базовую настройку PostgreSQL 10, например: создать пользователя, указать какие сетевые интерфейсы будет прослушивать сервер, а также разрешить подключение по сети. Начнем мы с создания пользователя и базы данных.

Создание пользователя и базы данных в PostgreSQL

После установки, к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля. Для этого переключаемся на пользователя postgres (учетная запись в Ubuntu создана автоматически во время установки PostgreSQL).

        su - postgres    

Запускаем psql — это консоль управления PostgreSQL.

        psql    

Сначала зададим пароль для пользователя postgres.

        password postgres    

Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.

         create user testuser with password '123456';    

где, testuser – это имя пользователя, ‘123456’ – это его пароль.

Далее давайте создадим базу данных.

        create database testdb;    

где, testdb – это имя новой базы данных.

Теперь давайте дадим права на управление БД нашему новому пользователю.

        grant all privileges on database testdb to testuser;    

Все готово, выходим из консоли.

        q    

Install_PostgreSQL_10_on_Ubuntu_Server_9.jpg

Для проверки, давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.

        psql -h localhost testdb testuser    

Работает. Для выхода снова набираем q.

        q    

Для переключения обратно на root вводим exit.

        exit    

Install_PostgreSQL_10_on_Ubuntu_Server_10.jpg

Разрешаем подключение к PostgreSQL по сети

По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому для того чтобы мы могли подключаться по сети, нам нужно указать какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.

Для этого открываем файл postgresql.conf, например редактором nano.

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

Находим следующую строку.

        #listen_addresses = 'localhost'    

и заменяем на (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).

        listen_addresses = '*'    

Install_PostgreSQL_10_on_Ubuntu_Server_11.jpg

Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.

Теперь давайте разрешим подключение из сети 10.0.2.0/24 с методом аутентификации md5. Для этого открываем файл pg_hba.conf

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

Ищем вот такие строки.

Install_PostgreSQL_10_on_Ubuntu_Server_12.jpg

И вносим следующие изменения (если IPv6 Вы не будете использовать, то можете закомментировать соответствующие строки знаком #).

Install_PostgreSQL_10_on_Ubuntu_Server_13.jpg

Где, 10.0.2.0/24 адрес сети, из которой будет происходить подключение к текущему серверу PostgreSQL. Сохраняем изменения сочетанием клавиш CTRL+O, подтверждаем нажатием Enter и закрываем редактор nano сочетанием клавиш CTRL+X.

Перезапускаем PostgreSQL

        systemctl restart postgresql    

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

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 (произносится как «Пост-Грес-Кью-Эл») — свободная современная СУБД с широкими возможностями. Её используют такие компании, как Alibaba, Instagram, Skype, Yahoo и многие другие. Это говорит о надёжности системы, и при этом она является простой в установке, использовании и обслуживании. Поверхностно ознакомиться с ней можно по статье в Википедии: https://ru.wikipedia.org/wiki/PostgreSQLPostgreSQL является кроссплатформенной СУБД с открытым исходным кодом, поэтому её можно установить практически на любой сервер. Все конфигурации серверов и все операционные системы, предоставляемые vscale, позволяют использование PostgreSQL. Рассмотрим установку и настройку на примере Ubuntu 16.04 64bit.

Технические требования

Шаг 1. Выбор источника для установки

PostgreSQL является очень популярным сервером баз данных, поэтому присутствует в официальных репозиториях Ubuntu. Однако в PPA разработчиков PostgreSQL можно найти самую свежую версию. Например, на момент написания данной инструкции в репозитории Ubuntu имеется PostgreSQL 9.5, а из PPA можно установить 9.6. Если у вас нет потребности в самых последних возможностях данной СУБД, то текущий шаг можно пропустить. Иначе добавьте репозиторий PostgreSQL в системный список источников:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

и добавьте для него ключ

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

Это позволит при обновлении пакетов получать наиболее свежие версии.

Шаг 2. Установка PostgreSQL

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

sudo apt-get update

Эта команда произведёт обновление индекса, что позволит устанавливать свежие и актуальные пакеты.

Установка PostgreSQL из официальных репозиториев и из PPA производится одинаково. Загрузим и установим пакеты PostgreSQL и contrib (contrib предоставляет некоторый дополнительный функционал и утилиты):

sudo apt-get install postgresql postgresql-contrib

Шаг 3. Подключение к серверу баз данных

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

sudo -u postgres psql

Попав тем или иным способом в командную строку psql, вам необходимо знать, как из неё выйти. Это можно сделать с помощью ввода команды выхода:

q

(сокращение от quit).

Шаг 4. Создание новой роли

Если вы производили установку по инструкции, то к этому моменту в вашей СУБД есть только одна роль — postgres. Рекомендуется не использовать данную роль для работы со своими базами данных, а создавать для каждой базы новую роль (или несколько при необходимости). Для создания новой роли предусмотрены два стандартных способа:

  1. интерактивный режим, в котором достаточно ответить на несколько простых вопросов;
  2. команда для создания роли через командную строку СУБД.

Мы не будем подробно останавливаться на интерактивном режиме, так как создать роль, которая полностью удовлетворяет требованиям в большинстве случаев, мы можем всего одной простой командой (перед этим нужно находиться в режиме командной строки как было описано на Шаге 3). Не забудьте заменить username на желаемое имя пользователя, а password — на пароль для этого пользователя:

create user username with password 'password';

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

Шаг 5. Создание базы данных

Находясь в режиме командной строки psql, создать базу данных мы можем командой create database и указав название базы данных. Например, чтобы воздать БД с именем vscale_db, выполните команду:

create database vscale_db;

Шаг 6. Назначение прав

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

grant all privileges on database vscale_db to username;

Шаг 7. Аутентификация и начало работы с базой данных

К текущему моменту у вас есть всё необходимое для начала работы с базой данных. Чтобы подключиться к ней, запустите psql с параметрами: хост «-h localhost» (так как подключаемся к локальной базе данных), название БД «vscale_db» и имя пользователя «username»:

psql -h localhost vscale_db username

После этого вы сможете взаимодействовать с вашей базой данных: создавать таблицы, созранять в них информцию, делать выборки и т.д.

Заключение

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

Создание пользователя, базы данных и назначение прав:

Мы рассмотрели установку и первоначальную настройку PostgreSQL на Ubuntu 16.04.  Подробнее с возможностями и тонкой настройкой можно ознакомиться на официальном сайте: https://www.postgresql.org/

tglnkPostgreSQL

Используемые источники:

  • https://info-comp.ru/sisadminst/598-install-postgresql-10-on-ubuntu-server.html
  • https://eternalhost.net/base/vps-vds/ustanovka-postgresql-ubuntu
  • https://community.vscale.io/hc/ru/community/posts/211866305-установка-и-первичная-настройка-postgresql-на-ubuntu-16-04

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