Как подключить DBeaver к PostgreSQL: драйвер, порт и разбор ошибок

Разбираем подключение DBeaver к PostgreSQL по шагам: какие поля заполнять, откуда берётся JDBC-драйвер и как поставить его вручную, если интернета нет. Отдельно смотрим пять ошибок сервера по их точному тексту, от connection refused до no pg_hba.conf entry, плюс два особых случая: база в Docker и подключение через SSH-туннель.
Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 2435 статей автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3094 экспертных мнения Подписаться на Телеграм-канал
Обложка: Как подключить DBeaver к PostgreSQL: драйвер, порт и разбор ошибок

Чтобы подключить DBeaver к PostgreSQL, откройте Database → New Database Connection (порядок шагов совпадает с официальной документацией DBeaver), выберите PostgreSQL и заполните четыре поля: Host, Port, Database и учётные данные. Порт по умолчанию 5432, база у свежей установки обычно называется postgres. Драйвер качать вручную не нужно: при первом подключении DBeaver сам предложит скачать JDBC-файлы и подтянет их из Maven. Если после этого выпала ошибка, ищите причину на стороне сервера: в девяти случаях из десяти она там.

Общий порядок подключения к любой СУБД мы разбирали в инструкции как подключиться к базе данных в DBeaver. Здесь речь только про PostgreSQL: драйвер, порт, доступы и точные тексты ошибок.

CheckroiCheckroiПодборка курсов по PostgreSQL158 курсов • 23 школыСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить

Что подготовить до подключения

Половина проблем новичков решается до открытия DBeaver. Проверьте четыре вещи.

Рой настраивает подключение к базе данных на ноутбуке
  • Сервер PostgreSQL запущен. DBeaver это клиент, он не поднимает базу сам. На Windows служба видна в «Службах» как postgresql-x64-17, на Linux состояние покажет systemctl status postgresql.
  • Вы знаете порт. По умолчанию в postgresql.conf стоит #port = 5432. Значение можно поменять, но смена порта требует перезапуска сервера.
  • У вас есть роль и пароль. Суперпользователь после установки называется postgres, пароль задаётся в момент установки. Кто и как раздаёт эти доступы в командах, мы разбирали в обзоре профессии SQL-разработчика.
  • Вы знаете имя базы. Пустого значения PostgreSQL не примет: подключение всегда идёт к конкретной базе, и служебная postgres для проверки связи подходит.

Быстрая проверка, что сервер вообще слушает порт: psql -h localhost -p 5432 -U postgres -d postgres. Если консольный клиент подключается, а DBeaver нет, проблема в параметрах окна подключения. Если не подключается и он, чинить надо сервер.

Подключение к PostgreSQL за 5 шагов

Интерфейс DBeaver по умолчанию английский, поэтому подписи ниже даны так, как вы увидите их на экране.

  1. Создайте соединение. Меню Database → New Database Connection или значок с вилкой на панели слева.
  2. Выберите PostgreSQL. В списке драйверов есть два варианта: PostgreSQL и PostgreSQL (old). Второй нужен только для серверов старше версии 8.x, во всех остальных случаях берите обычный.
  3. Заполните вкладку Main. В поле Host впишите localhost для локальной установки или IP-адрес сервера, в Port 5432, в Database postgres или имя вашей базы. Ниже идут Username и Password, для локальной работы удобно поставить галочку Save password.
  4. Согласитесь скачать драйвер. При первом подключении к PostgreSQL DBeaver покажет окно загрузки драйверных файлов. Нажмите Download, и программа заберёт JAR из Maven-репозитория.
  5. Проверьте связь. Кнопка Test Connection внизу окна. Успешный ответ показывает версию сервера и версию драйвера, так что сразу видно, с чем именно вы соединились.

После Finish соединение появится в панели Database Navigator. Разверните его, и увидите базу, внутри неё схемы, а уже в схеме public лежат таблицы.

Не видите остальные базы кластера? Это не сбой. Откройте настройки соединения, вкладку PostgreSQL, и включите Show all databases. Опция работает только при подключении по Host и не действует, если вы соединялись строкой URL.

Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

Откуда DBeaver берёт JDBC-драйвер и что делать без интернета

Драйвер PostgreSQL не входит в дистрибутив: DBeaver скачивает его при первом обращении к базе. Поэтому на машине без доступа к Maven подключение падает ещё до того, как дойдёт до сервера.

Ставится драйвер вручную через Database → Driver Manager. Найдите в списке PostgreSQL, откройте Edit Driver и перейдите на вкладку Libraries.

Кнопка Что делает Когда нужна
Download / Update Тянет JAR из Maven или Git-репозитория Интернет есть, драйвер просто не скачался с первого раза
Add File Подключает заранее скачанный файл postgresql-*.jar с диска Закрытый контур, прокси, машина без внешней сети
Add Artifact Задаёт зависимость координатами Maven Нужна конкретная версия драйвера и возможность её переключать

JAR-файл берут с официального сайта проекта jdbc.postgresql.org. После добавления файла проверьте, что он появился в таблице библиотек, и нажмите OK, иначе изменения не сохранятся.

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

Разбор ошибок по точному тексту

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

Раскладка предметов: сетевой кабель, ключ и табличка с номером порта

Connection refused

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

Отдельная ловушка для удалённых баз, параметр listen_addresses. По умолчанию в конфигурации стоит 'localhost', то есть сервер принимает соединения только с самой машины. Для доступа снаружи значение меняют на '*' или на конкретный адрес, и эта правка требует перезапуска сервера, перечитывания конфигурации недостаточно.

no pg_hba.conf entry for host

Полный текст выглядит так: no pg_hba.conf entry for host "203.0.113.10", user "postgres", database "shop", no encryption. Сеть в порядке, сервер вас услышал и отказал, потому что правил для такой пары «адрес плюс пользователь» в файле доступа нет.

Найти сам файл проще всего запросом SHOW hba_file; с любой машины, где подключение уже работает. Каждая строка в нём состоит из пяти колонок: тип соединения, база, пользователь, адрес и метод проверки.

# TYPE  DATABASE  USER      ADDRESS          METHOD
host    shop      postgres  203.0.113.0/24   scram-sha-256

Рекомендуемый метод сегодня это scram-sha-256. Устаревший md5 ещё работает, но помечен как кандидат на удаление, а trust пускает без пароля вообще, и на рабочем сервере ему не место.

После правки файл нужно перечитать: SELECT pg_reload_conf(); или pg_ctl reload. Перезапуск здесь не требуется, сервер подхватывает изменения по сигналу.

password authentication failed for user

Пароль не подошёл именно для этой роли. Причина скучнее, чем кажется: раскладка, пробел, скопированный вместе с паролем, или сохранённый в DBeaver старый пароль, который подставляется молча.

Сбросить пароль роли можно с самого сервера: ALTER USER postgres WITH PASSWORD 'новый_пароль';. Управление ролями и правами это повседневная работа администратора баз данных. В DBeaver после этого откройте настройки соединения и перезапишите сохранённое значение.

database «имя» does not exist

Логин и пароль приняты, но базы с таким именем в кластере нет. Частая причина, опечатка или регистр: PostgreSQL приводит имена к нижнему, если они не взяты в кавычки, поэтому MyShop и myshop ведут себя по-разному.

Подключитесь к служебной базе postgres и посмотрите список: SELECT datname FROM pg_database;. Заодно убедитесь, что база вообще создана, а не осталась в планах.

The connection attempt failed

Формулировка драйвера, за которой обычно стоит таймаут: пакеты уходят и не возвращаются. Так ведёт себя закрытый порт на файрволе или облачная база без вашего IP в списке разрешённых.

Проверяется командой telnet ваш_хост 5432 или nc -zv ваш_хост 5432 с той же машины, где стоит DBeaver. Если команда висит и отваливается по таймауту, трафик до сервера не доходит, и настраивать надо сеть, клиент тут ни при чём.

Docker и удалённый сервер

Два сценария, где стандартная инструкция даёт сбой.

PostgreSQL в контейнере

Подключаться нужно к порту, который проброшен наружу, а не к внутреннему. Если контейнер запущен с -p 5433:5432, то в DBeaver вы пишете Host localhost и Port 5433.

Имя контейнера в поле Host не работает: оно резолвится только внутри сети Docker. Посмотреть фактический проброс можно командой docker ps: нужное значение стоит в колонке PORTS слева от стрелки.

База на сервере без внешнего доступа

Открывать 5432 в интернет плохая идея. Вместо этого используйте вкладку SSH в настройках соединения: DBeaver поднимет туннель сам.

Логика полей здесь путает чаще всего. На вкладке SSH вы указываете доступы к серверу, а на вкладке Main адрес базы пишется так, как её видит сам сервер, обычно это снова localhost и 5432.

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

Что настроить сразу после подключения

Три настройки, которые экономят время на дистанции.

Рой доволен: чек-лист настроек закрыт
  • Show all databases на вкладке PostgreSQL, иначе придётся заводить отдельное соединение под каждую базу кластера.
  • Цвет соединения. В свойствах есть поле Connection type: пометьте продовую базу красным, а тестовую зелёным. Вкладка редактора окрашивается целиком, и шанс выполнить DELETE не в той среде заметно падает.
  • Read-only соединение. Галочка в свойствах запрещает любые изменяющие запросы. Для базы, куда вы ходите только смотреть, это дешёвая страховка.

Дальше всё упирается уже не в клиент, а в знание самого языка запросов: базовые SELECT и JOIN, индексы, планы выполнения. Что именно за язык и зачем он аналитикам и разработчикам, разбирали в отдельном материале про язык SQL, а чем администратор баз данных отличается от разработчика, в отдельном разборе.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 700 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Где освоить PostgreSQL системно

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

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

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
PostgreSQL для начинающих
Перейти на сайт курса
SkillboxSkillbox24 813 ₽2068 ₽/мес.1 месяцОбзор курса
PostgreSQL База
Перейти на сайт курса
Слёрм (Slurm)Слёрм30 000 ₽7500 ₽/мес.2 yearsОбзор курса
Профессия «Аналитик данных с нуля до middle»
Перейти на сайт курса
НетологияНетология145 600 ₽6066 ₽/мес.12 месяцевОбзор курса
Профессия «Python-разработчик»
Перейти на сайт курса
SkillboxSkillbox157 335 ₽5987 ₽/мес.10 месяцевОбзор курса
Профессия «Data Scientist PRO»
Перейти на сайт курса
SkillboxSkillbox224 595 ₽7245 ₽/мес.12 месяцевОбзор курса

Больше программ — в полном каталоге курсов по PostgreSQL

Часто задаваемые вопросы

Какой порт указывать при подключении DBeaver к PostgreSQL

По умолчанию PostgreSQL слушает порт 5432, он же подставляется в DBeaver автоматически. Если администратор менял значение в файле postgresql.conf, уточните его: смена порта требует перезапуска сервера, поэтому произвольно он не меняется.

Нужно ли скачивать драйвер PostgreSQL для DBeaver вручную

Нет. При первом подключении к PostgreSQL программа сама предложит скачать JDBC-файлы и заберёт их из Maven-репозитория. Вручную драйвер ставят только на машинах без доступа в интернет.

Почему DBeaver пишет connection refused при подключении к PostgreSQL

По указанному адресу и порту никто не отвечает: сервер выключен, слушает другой порт или принимает соединения только локально. За последнее отвечает параметр listen_addresses, у которого по умолчанию стоит значение localhost.

Как установить драйвер PostgreSQL в DBeaver без интернета

Скачайте файл postgresql-*.jar с сайта jdbc.postgresql.org на машине с сетью и перенесите его. Затем откройте Database → Driver Manager, найдите PostgreSQL, зайдите в Edit Driver, вкладка Libraries, и добавьте файл кнопкой Add File.

Почему в DBeaver видна только одна база PostgreSQL

Так работает настройка по умолчанию. Откройте свойства соединения, вкладку PostgreSQL и включите опцию Show all databases. Она действует только при подключении по адресу хоста и не работает, если вы соединялись строкой URL.

Как подключиться через DBeaver к PostgreSQL в Docker

Указывайте порт, проброшенный наружу, а не внутренний. При запуске контейнера с параметром -p 5433:5432 в поле Host пишут localhost, а в Port значение 5433. Имя контейнера в поле Host не сработает: оно известно только внутри сети Docker.

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!