Работа с базами данных из терминала быстрая, но не всегда удобная: посмотреть структуру таблицы, сравнить две схемы или выгрузить результат в CSV проще в графическом клиенте. DBeaver — универсальный инструмент, который подключается к PostgreSQL, MySQL, SQLite, Oracle, SQL Server и десяткам других СУБД через JDBC. Разберём установку, настройку подключений и приёмы, которые экономят время.
Почему DBeaver, а не специализированный клиент
У каждой СУБД есть свой клиент: pgAdmin для PostgreSQL, MySQL Workbench для MySQL. DBeaver выигрывает, когда баз несколько и не хочется держать пять программ. Единый интерфейс, общие горячие клавиши, один редактор SQL и одна панель подключений. Community Edition распространяется под Apache 2.0 и бесплатна, включая коммерческое использование.
Профессиональная версия добавляет поддержку NoSQL и часть корпоративных функций, но для повседневной работы с реляционными базами возможностей CE хватает.
Установка в Linux
flatpak install flathub io.dbeaver.DBeaverCommunity
sudo snap install dbeaver-ce
sudo apt install dbeaver
dbeaver -nosplash &
В Debian и Ubuntu пакет из репозитория может отставать на несколько версий. Официальный .deb с сайта проекта ставится через apt install ./dbeaver-ce_*.deb и подтягивает зависимости. Flatpak удобен изоляцией, но хуже работает с SSH-туннелями и локальными файлами БД, если не выдать доступ к нужным каталогам.
Первое подключение
При создании соединения выберите тип СУБД, укажите хост, порт, базу и пользователя. Кнопка проверки соединения скачает JDBC-драйвер с Maven Central — нужен доступ в сеть. Если корпоративный прокси блокирует загрузку, положите jar вручную через Driver Manager.
jdbc:postgresql://db.example.com:5432/app
jdbc:mysql://db.example.com:3306/app?useSSL=true
jdbc:sqlite:/home/user/data/app.db
Для MySQL полезна опция allowPublicKeyRetrieval=true — иначе на новых серверах с caching_sha2_password вы получите ошибку аутентификации. Для PostgreSQL проверьте sslmode=require, если сервер требует шифрование. Драйвер стоит обновлять после крупных апгрейдов сервера: старый JDBC-клиент может не понять новые типы данных.
SSH-туннель и SSL
Вкладка SSH в настройках соединения избавляет от ручного проброса портов. Укажите хост, пользователя и ключ — DBeaver поднимет туннель сам. Вкладка SSL позволяет подключить клиентский сертификат и CA.
ssh -N -L 5433:127.0.0.1:5432 user@bastion
psql -h 127.0.0.1 -p 5433 -U app -d app
Если туннель не поднимается, проверьте права на ключ (chmod 600) и что на бастионе разрешён AllowTcpForwarding. Ошибка «connection reset» чаще всего означает, что база слушает только localhost на удалённой стороне — тогда туннель нужно строить до самого хоста БД, а не до промежуточного сервера.
Навигация и метаданные
Панель Database Navigator показывает дерево соединений: схемы, таблицы, представления, процедуры. Поле фильтра внизу панели ищет объект по имени во всей схеме — быстрее, чем раскрывать десятки узлов. Двойной клик по таблице открывает данные, а контекстное меню даёт просмотр DDL, зависимостей и прав.
Вкладка Properties показывает размер таблицы, число строк и параметры хранения. Для PostgreSQL там же видны владелец и tablespace, для MySQL — движок и кодировка. Эти мелочи экономят отдельный заход в консоль, когда нужно быстро понять, почему запрос медленный или куда делся индекс.
Правая панель с метаданными обновляется при выделении объекта, а кнопка обновления сбрасывает кэш схемы. Если после миграции вы не видите новую колонку, нажмите её, а не перезапускайте клиент: DBeaver держит снимок структуры в памяти и обновляет его по запросу.
Редактор SQL
Редактор понимает диалекты, подсказывает таблицы и колонки, форматирует запрос и показывает план выполнения. Полезные привычки:
- Ctrl+Enter — выполнить запрос под курсором, не выделяя его.
- Alt+X — выполнить весь скрипт.
- Ctrl+Shift+F — форматирование SQL.
- Explain — кнопка плана запроса; для PostgreSQL доступен
EXPLAIN ANALYZE. - Переменные вида
${schema}подставляются через параметры в настройках.
EXPLAIN (ANALYZE, BUFFERS)
SELECT id, email FROM users WHERE created_at > now() - interval '7 days';
Автокоммит включён по умолчанию — для миграций его лучше выключить и подтверждать транзакции вручную. Панель Transaction Log показывает, что уже выполнено и что откатится при закрытии вкладки. Это спасает от случайного DELETE без WHERE.
Данные, экспорт и импорт
Таблицу можно открыть в виде сетки, отфильтровать, отсортировать и править ячейки. DBeaver сгенерирует UPDATE по первичному ключу; если ключа нет, редактирование будет недоступно — это защита, а не баг.
SELECT * FROM orders WHERE status = 'new' ORDER BY created_at DESC;
COPY orders TO '/tmp/orders.csv' WITH (FORMAT csv, HEADER true);
Мастер экспорта умеет CSV, XLSX, JSON и SQL-дамп. Для больших таблиц включите потоковую выгрузку и не ставьте fetch size в миллионы строк: клиент съест память. Импорт CSV требует совпадения типов и кодировки — UTF-8 без BOM избавит от «кракозябр» в первой колонке.
Сравнение схем и ER-диаграммы
Функция Compare строит diff между двумя соединениями: таблицы, колонки, индексы, ограничения. Это удобно перед миграцией на другой сервер или после ручных правок в тестовой базе. ER-диаграмма генерируется из схемы и помогает объяснить структуру коллегам. Обе функции работают в Community Edition.
Производительность и память
DBeaver — Java-приложение, и на больших базах ему нужно больше памяти. Правится файл dbeaver.ini рядом с исполняемым файлом:
-Xms512m
-Xmx4g
-XX:+UseG1GC
Не поднимайте -Xmx выше половины ОЗУ: сборщик мусора начнёт работать чаще, а интерфейс — подтормаживать. Закрывайте лишние вкладки с результатами: каждая держит свой набор строк в памяти. Для тяжёлых аналитических запросов используйте ограничение выборки и агрегаты на стороне сервера.
Безопасность
- Не сохраняйте пароли в проекте, если ноутбуком пользуются другие.
- Включите мастер-пароль для хранилища учётных данных.
- Для аналитики создавайте read-only пользователя и отдельное соединение.
- Проверяйте, куда указывает SSH-ключ: он не должен иметь лишних прав.
- Не запускайте DDL на продакшене без резервной копии и транзакции.
Итог
DBeaver закрывает повседневные задачи работы с данными: подключение к разным СУБД, удобный редактор, экспорт, сравнение схем и диагностика планов. Настройте драйверы и туннели один раз, выключите автокоммит для опасных операций и следите за памятью — и инструмент прослужит годами без сюрпризов.