Перейти к содержимому

Dbeaver как подключиться к базе

  • автор:

DBeaver. Не могу нормально подключиться с клиентской машины через Dbeaver к Postgres. Он пишет, что подключается, но ни таблиц, ни представлений нет

С клиентской машины под Windows через Dbeaver пытаюсь подключится к серверу с Postgres-ом. Подключаюсь через SSH туннель. Потом настройка подключения собственно к базе данных: Название сервера, порт 5432, имя нужной базы данных, Метод аутентификации: Database Native, имя пользователя, пароль. Dbeaver пишет, что подключение прошло успешно. Появляется база с нужным мне именем, но когда я вхожу в схему public, в таблицы или представления, там всё пусто. При том, что если я захожу в эту же базу с сервера через psql там все мои 42 таблицы присутствуют. Почему я не вижу их в Dbeaver-е?

Отслеживать
задан 22 июл 2022 в 2:54
11 1 1 серебряный знак 2 2 бронзовых знака
Проблему удалось решить.
22 июл 2022 в 5:19

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Проблему удалось решить. Это была неочевидная особенность Dbeaver. Dbeaver пытается подключить не ту базу, которую указываешь, а одноимённую с пользователем, и если такой базы не обнаруживается, он ругается, говорит, что такой базы не существует и не подключается. А если зайти под пользователем postgres, то он подключиться к базе postgres, даже если указана другая база данных. Причём имя базы данных в навигаторе написано правильно, но открывая таблицы, понимаешь, что это про другую базу данных. А если в настройках во вкладке Postgresql поставить галочку отображать все базы данных, то он правильно отобразит имена всех баз данных, но если попытаться зайти в их таблицы, то они будут у всех одинаковые и принадлежать собственно базе данных одноимённой с пользователем. Косяк, однако. Пришлось завести пользователя с таким же именем как и нужная база данных.

Отслеживать
ответ дан 22 июл 2022 в 5:32
11 1 1 серебряный знак 2 2 бронзовых знака

День добрый. А можно уточнить, пожалуйста Вашу версию DBeaver? Я вот сейчас подключилась с юзером1 к базе с названием2, указав название2 в настройках подключения как имя базы. И вижу соответствующие базе с названием 2 таблицы и схемы. Меня беспокоит Ваш комментарий, и хочется разобраться 🙂

2 сен 2022 в 18:42

Здравствуйте, Анастасия. Я меняю версии Debeaver регулярно, как только он просит. Сейчас у меня 22.2.5 , на тот момент не помню какая была версия (та которая была последняя на дату вопроса. Но проблема осталась и в версии 22.2.5 .

Интеграция DBeaver с Azure Databricks

В этой статье описывается инструмент DBeaver, который не предоставляется и не поддерживается Databricks. Чтобы связаться с поставщиком, воспользуйтесь страницей Проблемы репозитория dbeaver/dbeaver на сайте GitHub.

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

В этой статье описывается, как использовать локальный компьютер разработки для установки, настройки и использования бесплатной версии DBeaver Community Edition (CE) с открытым исходным кодом для работы с базами данных в Azure Databricks.

Эта статья была протестирована с помощью macOS, Databricks JDBC Driver версии 2.6.36 и DBeaver CE версии 23.3.0.

Requirements

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

  • 64-разрядная ОС Linux, macOS или 64-разрядная ОС Windows. (32-разрядная ОС Linux поддерживается, но не рекомендуется к использованию).
  • Скачайте драйвер Databricks JDBC на локальный компьютер разработки и извлеките файл DatabricksJDBC42.jar из скачанного файла DatabricksJDBC42-.zip .

Для подключения к DBeaver необходимо также использовать кластер Azure Databricks или хранилище SQL.

Шаг 1. Установите DBeaver

Загрузите и установите DBeaver CE:

  • Linux: загрузите и запустите один из установщиков Linux на странице Загрузка на веб-сайте DBeaver. Кроме того, на этой странице доступны параметры установки snap и flatpak .
  • macOS: используйте Homebrew для запуска brew install —cask dbeaver-community или используйте MacPorts для запуска sudo port install dbeaver-community . Установщик macOS также доступен на странице Загрузка веб-сайта DBeaver.
  • Windows: используйте Chocolatey для запуска choco install dbeaver . Установщик Windows также доступен на странице Загрузка веб-сайта DBeaver.

Шаг 2. Настройка драйвера JDBC Azure Databricks для DBeaver

Укажите в DBeaver сведения о драйвере Databricks JDBC, который вы скачали ранее.

  1. Запустите DBeaver.
  2. Если появится запрос на создание новой базы данных, нажмите кнопку Нет.
  3. Если отобразится запрос на подключение к базе данных или ее выбор, нажмите кнопку Отмена.
  4. Нажмите База данных > Диспетчер драйверов.
  5. В диалоговом окне Диспетчер драйверов выберите Создать.
  6. В диалоговом окне Создание нового драйвера перейдите на вкладку Библиотеки.
  7. Щелкните Добавить файл.
  8. Перейдите к папке, в которую вы извлекли драйвер JDBC Azure Databricks.
  9. Перейдите на один уровень ниже, чтобы найти .jar файл.
  10. .jar Выделите файл и нажмите кнопку «Открыть«.
  11. на вкладке Параметры в поле Имя драйвера введите Databricks .
  12. На вкладке Параметры в поле Имя класса введите com.databricks.client.jdbc.Driver .
  13. Щелкните OK.
  14. В диалоговом окне Диспетчер драйверов выберите Закрыть.

Шаг 3. Подключение DBeaver к базам данных Azure Databricks

Используйте DBeaver для подключения к кластеру или хранилищу SQL, чтобы получить доступ к базам данных в рабочей области Azure Databricks.

  1. В DBeaver щелкните База данных >Создать подключение к базе данных.
  2. В диалоговом окне Подключение к базе данных на вкладке Все щелкните Databricks, а затем нажмите кнопку Далее.
  3. Щелкните вкладку Main и введите значение в поле URL-адреса JDBC для ресурса Azure Databricks. Синтаксис поля URL-адреса JDBC см. в параметрах проверки подлинности драйвера JDBC Databricks.
  4. Нажмите кнопку Проверить подключение.

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

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

  1. Щелкните правой кнопкой мыши Databricks и выберите Изменить подключение.
  2. В диалоговом окне Настройка подключения нажмите кнопку Общие.
  3. В поле Имя соединения замените Databricks на другое имя.
  4. Щелкните OK.

Повторите инструкции этого шага для каждого ресурса, который должен быть доступен для DBeaver.

Шаг 4. Использование DBeaver для просмотра объектов данных

Используйте DBeaver для доступа к объектам данных в рабочей области Azure Databricks, таким как таблицы и свойства таблиц, представления, индексы, типы данных и другие типы объектов данных.

  1. В окне Навигатора базы данных в DBeaver щелкните правой кнопкой мыши подключение, которое нужно использовать.
  2. Если параметр Подключение активен, щелкните его. (Если параметр Подключение неактивен, значит вы уже подключены).

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

Повторите инструкции этого шага, чтобы получить доступ к дополнительным объектам данных.

шаг 5. Использование DBeaver для выполнения инструкций SQL

Используйте DBeaver, чтобы загрузить пример trips таблицы из samples схемы каталога nyctaxi .

  1. В окне Навигатора базы данных в DBeaver щелкните правой кнопкой мыши подключение, которое нужно использовать.
  2. Если параметр Подключение активен, щелкните его. (Если параметр Подключение неактивен, значит вы уже подключены).

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

SELECT * FROM samples.nyctaxi.trips; 

Следующие шаги

  • Используйте Редактор объектов базы данных для работы со свойствами объектов базы данных, данными и схемами отношений сущностей.
  • Используйте Редактор данных для просмотра и редактирования данных в таблице или представлении базы данных.
  • Используйте Редактор SQL для работы со сценариями SQL.
  • Работа со схемами отношений сущностей (ERD) в DBeaver.
  • Импорт и экспорт данных в DBeaver.
  • Перенос данных с помощью DBeaver.
  • Устранение проблем с драйвером JDBC в DBeaver.

Дополнительные ресурсы

  • Документация по DBeaver
  • Поддержка DBeaver
  • Выпуски DBeaver
  • CloudBeaver

Как подключиться к локальной базе данных в DBeaver?

Можно в DBeaver создать базу данных или подключиться к тем что у меня созданы (в консоли). Или в DBeaver можно только подключаться к удаленным?

Я пробовала просто создать новое подключение, но требовался какой-то пароль. У меня не стоит пароля и я его не задавала, когда устанавливала postgresql. В консоли работаю без пароля. Пароль рута тут не подходит. Не понимаю, какой пароль нужен. Или может я неправильно подключаюсь.

alissia
19.02.22 04:29:05 MSK

  • Ответить на это сообщение
  • Ссылка

ну так попробуй без пароля?

Anoxemian ★★★★★
( 19.02.22 04:39:30 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Anoxemian 19.02.22 04:39:30 MSK

я итак не ввожу никакого пароля

anonymous
( 19.02.22 04:40:23 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 19.02.22 04:40:23 MSK

и что получается?

Anoxemian ★★★★★
( 19.02.22 05:26:22 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Anoxemian 19.02.22 05:26:22 MSK

The server requested password-based authentication, but no password was provided.

anonymous
( 19.02.22 06:16:24 MSK )

  • Ответить на это сообщение
  • Ссылка

KRex ★
( 19.02.22 12:40:37 MSK )

  • Ответить на это сообщение
  • Ссылка

По умолчанию, «в консоли» используется peer auth, DBeaver такое не умеет. Тебе надо настроить в постгресе аутентификацию по паролю.

hippi90 ★★★★★
( 19.02.22 12:41:34 MSK )

  • Ответить на это сообщение
  • Ссылка

А подключаешься что-то типа такого?

sudo -i -u postgres psql 

KRex ★
( 19.02.22 12:44:59 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Покажи pg_hba.conf, подскажу что там поменять и зайдешь по паролю

KRex ★
( 19.02.22 12:47:32 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

anonymous
( 19.02.22 15:57:49 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 19.02.22 15:57:49 MSK

Исправил, не благодари

anonymous
( 19.02.22 16:10:21 MSK )

  • Ответить на это сообщение
  • Ссылка

Поищи сокет в /var/run/postgresql , через него и подключайся.

anonymous
( 19.02.22 18:36:49 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 19.02.22 18:36:49 MSK

Поищи сокет в /var/run/postgresql, через него и подключайся.

Это для кого совет? DBeaver через сокет подключаться не умеет. Только через сеть. И через сеть можно подключаться и к локальной БД (адрес 127.0.0.1). Нужно только настроить разрешения и задать пароль. Как настроить доступ postgresql через сеть — есть масса мануалов.

sigurd ★★★★★
( 19.02.22 21:20:10 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от sigurd 19.02.22 21:20:10 MSK

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

через сеть можно подключаться и к локальной БД

А ещё можно с пола руками есть.

Большинство либ, работающих с сетью, поддерживает Unix socket из коробки, и даже если нет, её всегда можно притащить, DBeaver же на основе эклипса сделан, он расширяем.

  1. Запускаем БД для теста.
  2. Чекаем подключение через сокет в консоли.
  3. Создаём подключение в дебилвере.
  4. Добавляем либу junixsocket, не забываем жмякнуть кнопочку для скачивания.
  5. Правим шаблон DSN для драйвера.
  6. Подключаемся (пароль спросит, но вводить его не теруется).
  7. Радуемся, что избежали поражения мозга, во время крафта звёзд на ЛОРе.

anonymous
( 20.02.22 00:21:59 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от anonymous 20.02.22 00:21:59 MSK

Небольшая поправочка: шаблон DSN таки глобальный, лучше его не править, а сразу прописать всё, начиная с третьего слеша, в поле «Host» в настройках подключения.

anonymous
( 20.02.22 00:35:49 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от anonymous 20.02.22 00:21:59 MSK

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

Не собираюсь обмазываться вашим java-гамном в каждом отдельном приложении! Я просто открываю сетевой доступ и любой клиент получает доступ без дополнительных говно-библиотек. Все равно, рано или поздно потребуется удаленный доступ к БД. Лично для меня никогда не возникала даже мысль о тоннах javа-либ для доступа к БД. У меня не только java нет на серверах БД, но и графика отсутствует. И никакая разработка не идет на рабочих серверах, только удаленный доступ.
Админам локал-хоста это не понять!

sigurd ★★★★★
( 20.02.22 03:25:53 MSK )
Последнее исправление: sigurd 20.02.22 03:33:45 MSK (всего исправлений: 2)

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от sigurd 20.02.22 03:25:53 MSK

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

anonymous
( 20.02.22 17:24:27 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 20.02.22 00:21:59 MSK

И какой смысл во всех этих приседаниях?

Legioner ★★★★★
( 20.02.22 18:36:39 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Исправь pg_hba.conf. Там надо включить доступ.

ox55ff ★★★★★
( 20.02.22 18:39:18 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от Legioner 20.02.22 18:36:39 MSK

Каких? Относительно обычной настройки соединения понадобилось только добавить библиотеку. Слишком тяжело для пятизвёздочника, понимаю.

anonymous
( 20.02.22 19:00:32 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 20.02.22 19:00:32 MSK

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

Legioner ★★★★★
( 20.02.22 19:30:28 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от KRex 19.02.22 12:44:59 MSK

да, именно так и подключаюсь в консоли

anonymous
( 21.02.22 08:45:50 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от anonymous 20.02.22 17:24:27 MSK

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

Да мне пофиг на мнение анонимуса! Проблемму доступа к локальной БД я решаю без всяких костылей, используя штатную функцию СУБД — сетевой доступ.

sigurd ★★★★★
( 21.02.22 10:33:49 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Тебе надо показать pg_hba.conf и сиськи. И все будет хорошо.

anonymous
( 21.02.22 11:05:26 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от sigurd 21.02.22 10:33:49 MSK

Какие ещё костыли, ламерок? Юникс сокет и является штатным средством доступа в рамках одного хоста.

anonymous
( 21.02.22 17:16:53 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от KRex 19.02.22 12:47:32 MSK

Database administrative login by Unix domain socket

local all postgres peer

TYPE DATABASE USER ADDRESS METHOD

«local» is for Unix domain socket connections only

local all all peer

IPv4 local connections:

host all all 127.0.0.1/32 md5

IPv6 local connections:

host all all ::1/128 md5

Allow replication connections from localhost, by a user with the

replication privilege.

local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5

alissia
( 22.02.22 09:16:38 MSK ) автор топика

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от alissia 22.02.22 09:16:38 MSK

Тут все хорошо. Этого достаточно host all all 127.0.0.1/32 md5. Осталось пароль задать postgres.

sudo -u postgres psql \password 

Не забудь перезапуск сделать

sudo systemctl restart postgresql 

KRex ★
( 22.02.22 13:36:18 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от KRex 22.02.22 13:36:18 MSK

большое спасибо! помогло)

alissia
( 22.02.22 23:03:36 MSK ) автор топика

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от anonymous 21.02.22 17:16:53 MSK

Костылями я называю установку дополнительных либ для доступа к unix-сокету и правку шаблонов.
Зачем такие извращения, если есть штатный доступ по сети? В том числе и к локальной БД, если на сервере БД есть джава и прочая графика.
Обычно такие извращения заканчиваются вопросами «почему у меня все локально работает, а по сети — нет»

sigurd ★★★★★
( 23.02.22 00:23:28 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 20.02.22 00:21:59 MSK

То что ты делаешь это глупость. Если jdbc драйвер не умеет в юникс-сокет, то нужно просто в hba добавить запись с «host» и адрес либо маску, далее подключиться по tcp localhost.

anonymous
( 23.02.22 12:10:49 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 23.02.22 12:10:49 MSK

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

anonymous
( 23.02.22 16:12:27 MSK )

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от sigurd 23.02.22 00:23:28 MSK

Шаблон править не нужно, это было для наглядности, а установка библиотеки может быть извращением только для совсем уж сферического ламерка (что ты именно такой, впрочем, с первого же комментария понятно было).

Как будто доступ через сокет менее «штатный».

Обычно такие извращения заканчиваются вопросами

У бестолкового ламерья, безусловно.

Я, к слову, не настаивал на этом на как единственно верном варианте, а показал как сделать элементарную вещь, аналогично тому, как к БД без пароля подключается psql. А ты возбудился от того, что твою бестолковость расчехлили и выставили на общее обозрение.

anonymous
( 23.02.22 16:25:48 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anonymous 23.02.22 16:25:48 MSK

Я, к слову, не настаивал на этом на как единственно верном варианте, а показал как сделать элементарную вещь, аналогично тому, как к БД без пароля подключается psql. А ты возбудился от того, что твою бестолковость расчехлили и выставили на общее обозрение.

Странно, но по моему — это ты возбудился, и начал доказывать, что установив дополнительную либу, можно расширить функционал DBeaver. Но так и не смог убедить, чем это проще изменения одной строки в конфиге PostgreSQL для сетевого доступа как к локальной, так и любой удаленной БД. А всех, кто не хочет ставить дополнительные (левые) либы объявил ламерами. И пофиг, что на сервере БД может не быть ни джавы, ни графики для ее запуска. Как раз это — позиция ламера — админа локал-хоста, привыкшего тащить все на один комп.

sigurd ★★★★★
( 23.02.22 17:23:03 MSK )
Последнее исправление: sigurd 23.02.22 17:27:04 MSK (всего исправлений: 1)

  • Ответить на это сообщение
  • Ссылка

Подключение к PostgreSQL с локального компьютера

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

Но присутствует возможность использовать SSH-туннель до сервера хостинга. Это позволит обеспечить зашифрованное соединение с базой данных PostgreSQL.

В данном примере для удаленной работы с PostgreSQL разберем подключение с помощью DBeaver.

1. Подготовка к работе

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

  • ip-адрес сервера (1)
  • логин (2)
  • пароль (3)

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

картинка 1.png

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

В настройках сайта переходим на вкладку PostgreSQL и получаем имя хоста (сервера).

картинка 2.png

В разделе Файлы запускаем Терминал

картинка 3.png

В терминале набираем команду ping «имя хоста PostgreSQL» (1), в нашем случае

и смотрим ip-адрес, который отвечает на наши запросы (2).

картинка 4.png

2. Настройка DBeaver

Последнюю версию DBeaver можно скачать с сайта dbeaver.io .

Запустив DBeaver выбираем в меню «Создать новое подключение». Выбираем PostgreSQL.

картинка 5.png

Далее настраиваем SSH-туннель:

  • Ставим галочку «Использовать тунель SSH»
  • Вводим IP-адрес из параметров подключения по SSH
  • Вводим имя пользователя (логин)
  • Пароль
  • Жмем на кнопку «Тест соединения»

При первом подключении появится запрос относительно необходимости принять и сохранить ключ сервера в списке постоянных ключей. Ответьте согласием на этот вопрос.

  • При успешном подключении – должно появиться такое окно

картинка 6.png

Возвращаемся на вкладку «Главная»

  • В поле «Хост» пишем ip-адрес сервера, по которому отзывался PostgreSQL в Терминале
  • В поле База данных – имя нашей базы данных из настроек PostgreSQL
  • Пользователь и пароль из настроек PostgreSQL
  • Нажимаем «Тест соединения»
  • При успешном подключении – должно появиться такое окно

картинка 7.png

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

Инструкция подготовлена пользователем услуги Хостинг.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *