Ubuntu открывает порт 5432

Обновлено: 21.11.2024

PostgreSQL 13, последний выпуск программного обеспечения базы данных Postgres, содержит множество внутренних улучшений. Несмотря на то, что это самая популярная и универсальная СУБД с открытым исходным кодом, ее не так просто настроить и начать работу. Читайте дальше, чтобы узнать, как начать работу с последней версией Postgres на последней LTS-версии сервера Ubuntu.

Установка

Ubuntu 20.04 поставляется с Postgres 12 из репозитория universe. Поскольку нам нужна версия 13, мы можем напрямую использовать официальный репозиторий APT проекта PostgreSQL. Этот репозиторий содержит двоичные файлы для Ubuntu 20.04, а также пакеты для различных расширений, которые вы, возможно, захотите установить позже.

Давайте настроим репозиторий следующим образом (обратите внимание, что «focal» — это кодовое название Ubuntu 20.04):

Теперь мы можем установить сервер PostgreSQL и другие инструменты командной строки, используя:

Установка выполняет несколько действий:

  • Он устанавливает сервер PostgreSQL, утилиты и клиент командной строки под названием psql.
  • Он создает системного пользователя Linux с именем postgres. Все файлы данных принадлежат этому пользователю, и все процессы выполняются от имени этого пользователя.
  • Он создает кластер базы данных (см. ниже). В этом кластере создается база данных, также называемая postgres.
  • Он создает одного пользователя PostgreSQL (не пользователя системы Linux), также называемого postgres. Этот пользователь PostgreSQL имеет права суперпользователя.

Вы можете видеть, что это начинает сбивать с толку!

Кластеры баз данных

С точки зрения Postgres, теперь у нас есть единый кластер базы данных, который работает. Один кластер базы данных может содержать одну или несколько баз данных. В кластере базы данных, который у нас сейчас есть, есть база данных под названием «postgres». (Есть также пара «шаблонных» баз данных, которые мы пока можем игнорировать.)

Кластер базы данных управляется основным процессом postgres, называемым мастером почты. Он порождает различные дочерние процессы, которые либо выполняют различные системные задачи, либо обрабатывают входящие клиентские подключения. Посмотрите на запущенные в данный момент процессы:

Здесь процесс postmaster — 4880, и он породил 6 дочерних процессов, которые выполняют различные служебные действия. Вы также можете увидеть расположение кластера ( /var/lib/postgresql/13/main ) и расположение файла конфигурации ( /etc/postgresql/13/main/postgresql.conf ).

Перезагрузка и перезапуск

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

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

Файлы журнала

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

Сервер PostgreSQL записывает файл журнала, в котором можно просмотреть более подробные сообщения об ошибках. Этот файл находится в /var/log/postgresql/postgresql-13-main.log:

Подключение к вашему серверу Postgres

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

  • Подключения TCP от 127.0.0.1 через порт 5432 и
  • Сокеты домена Unix в /var/run/postgresql

Из-за конфигурации по умолчанию единственный способ подключиться к серверу прямо сейчас — через сокет Unix из процесса, запущенного от имени системного пользователя postgres. Давайте запустим стандартный интерактивный клиент psql следующим образом:

Подключение произошло через сокеты Unix (это метод по умолчанию в psql). Поскольку по умолчанию у пользователя postgres нет пароля, а конфигурация по умолчанию требует аутентификации по паролю для TCP-соединений, сейчас невозможно подключиться через 127.0.0.1:5432.

Разрешение входящих подключений из внутренней сети

Сначала давайте изменим конфигурацию, чтобы разрешить подключения из внутренней сети. Предполагая, что IP-адрес нашего сервера в этой сети — 10.1.2.3, мы можем отредактировать основной файл конфигурации в /etc/postgresql/13/main/postgresql.conf и изменить строки:

Нам также нужно указать Postgres использовать аутентификацию по паролю для соединений, поступающих из этих сетей. Для этого отредактируйте другой файл конфигурации с именем /etc/postgresql/13/main/pg_hba.conf и измените строку:

(Предполагается, что внутренняя сеть 10.1.0.0/16.)

Мы также изменили метод md5 по умолчанию на более новый и безопасный scram-sha-256.Все остальные вхождения md5 в файл также следует заменить на scram-sha-256. Если ваше приложение или драйвер базы данных не поддерживает этот метод, продолжайте использовать вместо него метод md5.

Чтобы эти изменения вступили в силу, необходимо перезапустить сервер:

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

Мы почти у цели!

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

(Пропустите первую команду, если вы хотите использовать вместо нее md5.) Это создало пользователя с именем alice с паролем s3cr3tp@ss. Давайте также создадим базу данных, которой будет владеть этот пользователь:

База данных называется app1. Поскольку этой базой данных владеет alice, все операции в базе данных (например, создание таблиц, вставка строк) разрешены, если приложение подключается от имени пользователя alice.

Попробуем подключиться как alice по сети:

Круто! Теперь мы подключены к базе данных app1 как пользователь alice.

Удаление баз данных, резервное копирование и восстановление

Вот несколько приемов, которые помогут вам продолжить работу с сервером Postgres:

Удаление базы данных

Вы можете удалить только что созданную базу данных ("app1") следующим образом:

Обратите внимание, что сначала вам нужно переключиться на другую базу данных с помощью команды «\c» в psql.

Чтобы создать другую базу данных или заново создать app1, подключитесь как суперпользователь и выполните команду «СОЗДАТЬ БАЗУ ДАННЫХ», как и раньше.

Создать резервную копию базы данных

Самый простой способ сделать резервную копию данных в вашей базе данных — использовать pg_dump следующим образом:

При этом создается файл SQL с именем «backup.sql», содержащий все команды SQL, необходимые для воссоздания схемы и данных в базе данных app1 в текстовом формате. Вы можете выполнить эти команды в любой базе данных, и схема и данные будут загружены в эту базу данных.

Подробнее о pg_dump читайте здесь.

Восстановление данных

Созданный выше командный файл SQL можно восстановить следующим образом:

Обратите внимание, что мы восстановили схему и данные в другой базе данных, app2. Команда psql «\i» позволяет выполнять команды SQL из файла.

Дальнейшие шаги

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

О pgDash

pgDash – это современное решение для углубленного мониторинга, разработанное специально для развертываний PostgreSQL. pgDash показывает вам информацию и метрики о каждом аспекте вашего сервера базы данных PostgreSQL, собранные с помощью инструмента pgmetrics с открытым исходным кодом.

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

PostgreSQL – одна из самых известных свободно доступных программных систем управления базами данных с открытым исходным кодом. Эта система быстрая, надежная, гибкая, простая в использовании и содержит расширенные функции, которые позволяют создавать сложные приложения в отказоустойчивом рабочем пространстве. Существует два разных пакета PostgreSQL, каждый из которых предназначен для определенной цели. Пакет PostgreSQL Client работает на стороне клиента для подключения к серверам, а пакет PostgreSQL Server позволяет вашей системе настраивать и размещать собственные базы данных. В этом руководстве показано, как установить эти два пакета и как настроить сервер PostgreSQL за несколько простых шагов.

Как установить клиентскую СУБД PostgreSQL в Ubuntu

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

Шаг 1. Обновите APT

Как всегда следует делать при установке новой системы, сначала обновите и обновите APT.

Шаг 2. Загрузите и установите клиент PostgreSQL

После обновления APT загрузите и установите клиент PostgreSQL с помощью следующей команды терминала.

Шаг 3. Подключитесь к PostgreSQL

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

Как установить сервер PostgreSQL в Ubuntu

Вы можете разместить одну или несколько баз данных PostgreSQL на своем локальном компьютере с помощью пакета сервера PostgreSQL.

Шаг 1. Обновите APT

Как всегда следует делать при установке новой системы, сначала обновите и обновите APT.

Шаг 2. Загрузите и установите сервер PostgreSQL

Теперь загрузите и установите пакет сервера PostgreSQL с помощью команды.

Шаг 3. Проверьте порт, используемый PostgreSQL

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

Шаг 4. Измените параметры запуска

Вы также можете изменить параметры запуска PostgreSQL Server после загрузки системы с помощью команд systemctl.

Шаг 5. Доступ к серверу PostgreSQL

При установке PostgreSQL Server он доступен только с локального компьютера и использует петлевой IP-адрес вашего компьютера. Вы можете изменить этот параметр в файле конфигурации PostgreSQL, чтобы разрешить удаленный доступ. Введите следующую команду, чтобы открыть файл конфигурации PostgreSQL в gedit или любом другом текстовом редакторе.

Измените следующую строку в разделе «ПОДКЛЮЧЕНИЯ И АУТЕНТИФИКАЦИЯ». Эта команда заставит PostgreSQL прослушивать весь входящий трафик через порт. Затем сохраните файл и закройте его.

Шаг 6. Перезапустите PostgreSQL

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

Шаг 7. Проверьте использование порта PostgreSQL

Вы можете проверить использование порта PostgreSQL и IP-адрес с помощью команды listen.

Шаг 8. Разрешите входящему клиенту подключаться

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

Шаг 9. Настройте параметры брандмауэра

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

Заключение

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

Об авторе

Юнис Саид

Я внештатный разработчик программных проектов, выпускник отдела разработки программного обеспечения и автор контента. Мне нравится работать с Linux и программным обеспечением с открытым исходным кодом.

Postgres — это мощная система управления реляционными базами данных, которая может обрабатывать большие рабочие нагрузки от одного компьютера до центра обработки данных. Он легко масштабируется и широко популярен. В этой статье мы узнаем, как настроить удаленный сервер базы данных Postgres для использования в ваших проектах. Настройка, описанная в этой статье, позволит подключиться к Postgres с любого IP-адреса и не будет охватывать конкретное/авторизованное IP-подключение.

Предпосылки

  • Знакомство с интерфейсом командной строки
  • Сервер Ubuntu. Вы можете быстро выделить его у DigitalOcean или у любого облачного провайдера.
  • Много терпения
  • Postgres установлен на локальном компьютере

Установка Postgres

На этом шаге вы будете устанавливать Postgres на свой сервер.Первое, что нужно сделать, это подключиться к вашему серверу по SSH, выполнив:

Примечание:
server_user — это пользователь вашего сервера, под которым вы хотите войти в систему,
server_ip — это IP-адрес вашего сервера

Затем введите соответствующий пароль пользователя или пароль ключа SSH, если он есть. Затем обновите пакеты и зависимости сервера, выполнив:

Когда это будет сделано, установите Postgres, выполнив:

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

Пользователь сервера будет переключен с root на postgres . Вы можете получить доступ к оболочке Postgres, выполнив:

Вам будет показано что-то похожее на это:

Создать пользователя

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

Оставаясь в системе как postgres, выполните следующую команду, чтобы создать нового пользователя:

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

Мы сделали специальное демо для .
Нет, правда. Нажмите здесь, чтобы проверить это .

Я назвал свою роль пользователя cleopatra и сделал своего пользователя суперпользователем. Суперпользователь — это пользователь, обладающий всеми привилегиями, доступными для экземпляра Postgres. Далее мы будем назначать cleopatra базе данных. Для этого выполните следующую команду:

Приведенная выше команда создаст новую базу данных с именем egypt и назначит cleopatra пользователем базы данных.

Разрешить удаленный доступ

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

Найдите эту строку в файле:

Раскомментируйте и измените значение на '*' , это позволит всем подключаться к Postgres.

Сохраните и закройте файл. Затем измените pg_hba.conf, чтобы также разрешить подключения от всех. Откройте файл в предпочитаемом вами редакторе:

Изменить этот раздел:

В этом файле хранится информация об аутентификации клиента. Каждая запись указывает диапазон IP-адресов, имя базы данных, имя пользователя и метод аутентификации. В нашем случае мы предоставляем всем пользователям базы данных доступ ко всем базам данных с любым диапазоном IP-адресов, таким образом позволяя любому IP-адресу подключаться. Сохраните и закройте файл. Затем разрешите порт 5432 через брандмауэр, выполнив:

Наконец, перезапустите Postgres, чтобы применить все изменения, которые вы внесли в его конфигурацию, выполнив:

Удаленное подключение к Postgres

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

Где находится IP-адрес вашего сервера, вам будет предложено ввести пароль пользователя. Если учетные данные совпадают, вы войдете в оболочку Postgres для cleopatra и базы данных egypt.

Создайте новую таблицу и назовите ее pharaohs, выполнив в оболочке Postgres следующее:

Далее добавьте запись в таблицу pharaohs. Вы добавите Тутанхамона в виде строки в таблицу, запустив в оболочке Postgres следующее:

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

Выберите Postgres из раскрывающегося списка

Примечание.
Порт Postgres по умолчанию — 5432.
Игнорируйте регионы SSL (мы не будем рассматривать эту тему в этом посте)

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

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

Заключение

Мы увидели, как настроить сервер базы данных Postgres для удаленного доступа. Обладая этими знаниями, вы сможете настроить сервер базы данных для своего следующего проекта. В производственной среде необходимо помнить о некоторых мерах безопасности. Например, разрешить только указанный IP-адрес и запретить корневой доступ к вашему серверу, вы можете узнать, как настроить это в этой статье.

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

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

Существующие платформы сообщества PostgreSQL помогают пользователям справляться с возникающими ошибками, а также понимать его различные функции и варианты использования.

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

Установка PostgreSQL в Ubuntu

Независимо от того, работаете ли вы в настольной или серверной среде Ubuntu 20.04, установить и запустить PostgreSQL 14 в вашей системе несложно. Перед тем, как в этой статье вы узнаете, как установить PostgreSQL 14 в системе Ubuntu 20.04, убедитесь, что у вас есть привилегии пользователя root или вы являетесь пользователем Sudoer.

Во-первых, запустите быструю проверку обновлений системы на вашей системе Ubuntu 20.04.

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

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

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

Запустите еще одно системное обновление, чтобы обновить метаданные apt.

Следующая команда должна установить PostgreSQL 14 в вашей системе Ubuntu 20.04.

Установите PostgreSQL в Ubuntu

Следующая команда должна вывести список всех пакетов, связанных с вашей установкой PostgreSQL.

Список установленных пакетов PostgreSQL

Порт PostgreSQL по умолчанию (5432) не должен быть заложником какого-либо другого системного процесса.

Приведенная выше команда выводит список всех системных процессов, использующих/прослушивающих порт 5432.

Проверить порт PostgreSQL

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

Проверить статус PostgreSQL в Ubuntu

Подключение к базе данных PostgreSQL 14 в Ubuntu

Это простой шаг, и команда для использования выглядит следующим образом:

Подключить базу данных PostgreSQL в Ubuntu

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

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

Создать пользователя-администратора PostgreSQL

Чтобы подтвердить существование суперпользователя PostgreSQL, выполните следующую команду.

Проверить пользователя-администратора PostgreSQL

Чтобы выйти из ада PostgreSQL, выполните команду:

Установив PostgreSQL 14 в вашей системе Ubuntu 20.04, вы теперь можете с комфортом использовать его, чтобы вывести свои приложения или проекты на базе баз данных на новый уровень.

Читайте также: