2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Установка и базовая настройка PostgreSQL в Windows 10

Установка и базовая настройка PostgreSQL в Windows 10

PostgreSQL — это бесплатная объектно-реляционная СУБД с мощным функционалом, который позволяет конкурировать с платными базами данных, такими как Microsoft SQL, Oracle. PostgreSQL поддерживает пользовательские данные, функции, операции, домены и индексы. В данной статье мы рассмотрим установку и краткий обзор по управлению базой данных PostgreSQL. Мы установим СУБД PostgreSQL в Windows 10, создадим новую базу, добавим в неё таблицы и настроим доступа для пользователей. Также мы рассмотрим основы управления PostgreSQL с помощью SQL shell и визуальной системы управления PgAdmin. Надеюсь эта статья станет хорошей отправной точкой для обучения работы с PostgreSQL и использованию ее в разработке и тестовых проектах.

  • Установка PostgreSQL 11 в Windows 10
  • Доступ к PostgreSQL по сети, правила файерволла
  • Утилиты управления PostgreSQL через командную строку
  • PgAdmin: Визуальный редактор для PostgresSQL
  • Query Tool: использование SQL запросов в PostgreSQL

Подключение к серверу баз данных PostgreSQL через psql

psql — это интерактивная терминальная программа, предоставляемая PostgreSQL. Она позволяет вам взаимодействовать с сервером баз данных PostgreSQL, например, выполнять операторы SQL и управлять объектами баз данных.

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

Во-первых, запустите программу psql и подключитесь к PostgreSQL Database Server с помощью пользователя postgres, нажав на икноку psql, как показано ниже:

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

В-третьих, попробуйте повзаимодействовать с сервером баз данных PostgreSQL при помощи операторов SQL. Для этого вы можете воспользоваться следующим оператором:

Пожалуйста, не забудьте завершить команду точкой с запятой (;). После нажатия Enter, psql вернёт текущую версию PostgreSQL, установленную в вашей системе.

Шаг 2. Создание инстанса БД PostgreSQL

На этом этапе с помощью Amazon RDS будет создан инстанс БД PostgreSQL класса db.t2.micro с хранилищем на 20 ГБ и активацией автоматического резервного копирования (срок хранения копий равен одному дню). Напоминаем, что все эти операции доступны на уровне бесплатного пользования.

а) В правом верхнем углу консоли Amazon RDS выберите параметр Region и укажите регион, в котором требуется создать инстанс БД.

Примечание. Облачные вычислительные ресурсы AWS расположены в высокодоступных центрах обработки данных по всему миру. Пользователи могут самостоятельно выбирать регион, в котором будут работать их ресурсы Amazon RDS.

(Нажмите, чтобы увеличить.)

б) В разделе создания базы данных выберите Create database.

(Нажмите, чтобы увеличить.)

в) Теперь можно выбрать ядро СУБД. Для этого учебного пособия щелкните значок PostgreSQL, выберите Only enable options eligible for RDS Free Usage Tier и щелкните Next.

(Нажмите, чтобы увеличить.)

г) Теперь настройте инстанс БД. В представленном ниже списке приводятся примеры параметров, которые можно использовать в данном учебном пособии.

Чтобы развернуть параметры настройки, нажмите здесь.

Спецификации инстанса:

  • License model: выберите значение по умолчанию postgresql-license.
  • DB Engine Version: выберите версию по умолчанию.
  • DB Instance Class: выберите значение по умолчанию db.t2.micro — 1vCPU, 1 GIB RAM. Это значение соответствует инстансу с 1 ГБ памяти и 1 виртуальным ЦП. Список поддерживаемых классов инстансов см. на странице Сведения о продукте Amazon RDS.
  • Multi-AZ deployment: обратите внимание, что развертывание в нескольких зонах доступности является платным. В случае развертывания в нескольких зонах доступности в другой зоне автоматически создается и поддерживается синхронизированная резервная реплика. Дополнительную информацию см. в разделе Развертывание с обеспечением высокой доступности.
  • Storage Type: выберите значение General Purpose (SSD). Подробную информацию о хранении см. в разделе Хранилище для Amazon RDS.
  • Allocated Storage: выберите значение по умолчанию «20», чтобы выделить для базы данных 20 ГБ. При работе с Amazon RDS возможно масштабирование не более чем до 16 ТБ.
  • Enable storage autoscaling: если рабочая нагрузка имеет циклический и непредсказуемый характер, рекомендуется включить функцию автомасштабирования хранилища, чтобы при необходимости сервис RDS мог автоматически масштабировать хранилище. При выполнении заданий этого учебного пособия мы не будем использовать этот параметр.
  • DB Instance Identifier: укажите имя инстанса БД. Оно должно быть уникальным в рамках аккаунта пользователя в выбранном регионе. В данном примере инстансу будет присвоено имя rds-postgresql-10minTutorial.
  • Master Username: укажите имя пользователя для входа в инстанс БД. В данном примере будет использоваться значение masterUsername.
  • Master Password: в качестве основного пароля укажите комбинацию, содержащую от 8 до 41 печатного символа в кодировке ASCII (кроме символов «/», «»» и «@»).
  • Confirm Password: введите пароль повторно.
Читать еще:  Бесплатная утилита Win Updates Disabler для отключения обновлений Windows 10 » Как установить Windows 10

Удаление базы или пользователя

Для этой операции используется команда drop: она умеет удалять как пользователя, так и БД.

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

Если вы укажете psql postgres (без имени пользователя), то postgreSQL пустит вас под стандартным суперюзером (postgres). Чтобы войти в базу данных под определенным пользователем, можно использовать следующую команду:

Давайте войдем в базу proglib_db под пользователем author. Нажмите q, чтобы выйти из текущей БД, а затем выполните следующую команду:

Работа с шаблонами баз данных

При установке PostgreSQL по умолчанию создаются три базы данных: postgres, template0, template1.

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

Фактически, когда вы выполняете команду CREATE DATABASE, Postgres создает клон базы template1. Если внести изменения в template1, они будут наследоваться всеми новыми создаваемыми базами. Это позволяет, например, добавить в template1 необходимые вам таблицы с данными или установить расширения, после чего не потребуется добавлять их для каждой новой базы.

Обратите внимание, что для установки расширений необходимо подключиться к template1 от суперпользователя (postgres или другой роли, имеющей данные привилегии).

Подключитесь к шаблону template1:

И установите расширение:

Например, если вы установите в template1 расширение pgcrypto, то в дальнейшем, при выполнении CREATE DATABASE, новые базы будут создаваться с уже установленным pgrypto.

Template0 — это исходная база, которая используется, когда нужно создать новую базу без каких-либо изменений, внесенных в шаблон template1, или же вернуть template1 в его изначальное состояние.

Чтобы создать «чистую» базу на основе template0, нужно выполнить:

Также template0 необходима, если вам нужно внести изменения в кодировку или локаль создаваемой базы данных. По умолчанию (при использовании template1) эти изменения невозможны.

В этом случае нужно при создании базы указать template0 в качестве шаблона и указать требуемую кодировку и/или локаль, например:

Пересоздание template1

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

Сначала необходимо указать, что template1 не является шаблоном, чтобы удаление стало возможно:

Далее удалить template1:

И создать базу template1 заново, указав, что она будет являться шаблоном:

Работа с переменными

Клиент psql также позволяет работать с переменными. Команда set создает и модифицирует переменные, а команда unset удаляет их. Переменные psql работают так же, как переменные среды в командных интерпретаторах Unix и Linux (например, bash). Хотя в целом переменные psql реализованы довольно просто, они приносят несомненную пользу, поскольку значения переменных легко подставляются в управляющие команды psql и в команды SQL.

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

Если теперь ввести команду set без аргументов, переменная появляется в общем списке.

После определения переменной ее можно включать как во внутренние управляющие команды psql, так и в команды SQL. Подстановка значения переменной вместо ее имени называется интерполяцией. Механизм интерполяции открывает много полезных возможностей — например, можно загрузить файл в переменную, а затем использовать загруженное содержимое в команде INSERT или SELECT. Возможны и более простые подстановки.

Чтобы подставить значение переменной, укажите перед ее именем префикс :. Ниже приведен пример интерполяции в командах INSERT и SELECT.

Читать еще:  Бит и Байт — основные единицы измерения информации

Как упоминалось выше, в переменную можно загрузить содержимое файла, а затем интерполировать ее в другую команду. Для этого присвойте переменной результат выполнения команды cat (команда Unix, предназначенная для вывода содержимого файла), заключенный в обратные апострофы (‘ ‘). В листингах 6.5 и 6.6 в качестве примера используется файл tab! edata, находящийся в домашнем каталоге пользователя (

В таблице employees появляется новая запись со значениями полей, загруженными из переменной data.

Установка и настройка PostgreSQL 10 на Linux

Установка и настройка PostgreSQL 10 на Linux

Так как 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 на Linux Ubuntu Server 16.04

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

Шаг 1

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

Шаг 2

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

apt-cache search postgresql-10

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

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

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

Для упрощения процедуры создания файла давайте напишем скрипт с выводом адреса репозитория, а вывод перенаправим в файл. Для 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’

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

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

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

apt-cache search postgresql-10

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

Шаг 3

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

apt-get -y install postgresql-10

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

systemctl status postgresql

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

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

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

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

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

Читать еще:  Незаменимые программы для чтения PDF-файлов

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

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

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

create user testuser with password ‘123456’;

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

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

create database testdb;

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

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

grant all privileges on database testdb to testuser;

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

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

psql -h localhost testdb testuser

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

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

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

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

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

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

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

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

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

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

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

systemctl restart postgresql

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

Основные команды PostgreSQL в интерактивном режиме:

  • connect db_name – подключиться к базе с именем db_name
  • du – список пользователей
  • dp (или z) – список таблиц, представлений, последовательностей, прав доступа к ним
  • di – индексы
  • ds – последовательности
  • dt – список таблиц
  • dt+ — список всех таблиц с описанием
  • dt *s* — список всех таблиц, содержащих s в имени
  • dv – представления
  • dS – системные таблицы
  • d+ – описание таблицы
  • o – пересылка результатов запроса в файл
  • l – список баз данных
  • i – читать входящие данные из файла
  • e – открывает текущее содержимое буфера запроса в редакторе (если иное не указано в окружении переменной EDITOR, то будет использоваться по умолчанию vi)
  • d “table_name” – описание таблицы
  • i запуск команды из внешнего файла, например i /my/directory/my.sql
  • pset – команда настройки параметров форматирования
  • echo – выводит сообщение
  • set – устанавливает значение переменной среды. Без параметров выводит список текущих переменных (unset – удаляет).
  • ? – справочник psql
  • help – справочник SQL
  • q (или Ctrl+D) – выход с программы

Работа с конфигурацией

Поиск и изменение расположения экземпляра кластера

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

Изменим расположение на другое с помощью команды:

Но для того, чтобы изменения вступили в силу, требуется перезагрузка.

Получение перечня доступных типов данных

Получим перечень доступных типов данных с помощью команды:

typname — имя типа данных.
typlen — размер типа данных.

Изменение настроек СУБД без перезагрузки

Настройки PostgreSQL находятся в специальных файлах вроде postgresql.conf и pg_hba.conf . После изменения этих файлов нужно, чтобы СУБД снова получила настройки. Для этого производится перезагрузка сервера баз данных. Понятно, что приходится это делать, но на продакшн-версии проекта, которым пользуются тысячи пользователей, это очень нежелательно. Поэтому в PostgreSQL есть функция, с помощью которой можно применить изменения без перезагрузки сервера:

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

Мы рассмотрели команды, которые помогут упростить работу разработчикам и администраторам баз данных, использующим PostgreSQL. Но это далеко не все возможные приёмы. Если вы сталкивались с интересными задачами, напишите о них в комментариях. Поделимся полезным опытом!

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector