Free universal database tool and SQL client

Overview

Twitter URL Build Status Codacy Badge Apache 2.0 Java CI

DBeaver

Free multi-platform database tool for developers, SQL programmers, database administrators and analysts.
Supports any database which has JDBC driver (which basically means - ANY database). Commercial versions also support non-JDBC datasources such as MongoDB, Cassandra, Couchbase, Redis, BigTable, DynamoDB, etc. You can find the list of all databases supported in commercial versions here.

  • Has a lot of features including metadata editor, SQL editor, rich data editor, ERD, data export/import/migration, SQL execution plans, etc.
  • Based on Eclipse platform.
  • Uses plugins architecture and provides additional functionality for the following databases: MySQL/MariaDB, PostgreSQL, Greenplum, Oracle, DB2 LUW, Exasol, SQL Server, Sybase/SAP ASE, SQLite, Firebird, H2, HSQLDB, Derby, Teradata, Vertica, Netezza, Informix, etc.

Download

You can download prebuilt binaries from official website or directly from GitHub releases.
You can also download Early Access version. We publish it 1-2 times per week.

Running

Just run an installer (or unzip an archive) and run dbeaver.

Note: DBeaver needs Java to run. Open JDK 11 is included in all DBeaver distributions. (since version 7.3.1).
You can change default JDK version by replacing directory jre in dbeaver installation folder.

Documentation

Building

Prerequisites:

  1. Java (JDK) 11 or later (AdoptOpenJDK 11 is our default Java at the moment).
  2. Apache Maven 3.6+
  3. Internet access
  4. Git client

Build

git clone https://github.com/dbeaver/dbeaver.git dbeaver
cd dbeaver
mvn package

Binaries are in product/community/target/products

Notes

Contribution: help the Beaver!

Hooray, we have reached 20k of stars on GitHub and continue to grow!
That's really cool, we are glad that you like DBeaver.

  • We are actively looking for new source code contributors. We have added labels “Good first issue” and “Help wanted” to some tickets. If you want to be a part of our development team just be brave and take a ticket.
  • You can buy one of our commercial versions. They include NoSQL databases support, additional extensions, and official online support. Also, licensed users have priorities in bug fixes and new features development.

Thank you!


DBeaver is a desktop client.
If you are looking for a web-based database management tool - check our new product: CloudBeaver.
It is based on DBeaver platform and thus supports any database and most of DBeaver features.

Comments
  • Can't edit data in Data Editor for SQL Server connections

    Can't edit data in Data Editor for SQL Server connections

    System information:

    • Windows 10
    • DBeaver 6.3.1 - 6.3.2
    • Java 1.8.0_201

    Connection specification:

    • Database name and version: SQL Server
    • Driver name: MS SQL Server / SQL Server
    • Do you use tunnels or proxies (SSH, SOCKS, etc)? No

    Describe the problem you're observing:

    I cannot edit the data in the "Data Editor" on any SQL Server connection, always appears the message "Column is read only". It's impossible to generate SQL insert statement too. If I install the 6.2.1 version all works well with the same settings.

    Check 'Read-only connection' is always disabled.

    Steps to reproduce, if exist:

    1. Create a SQL Server connection.
    2. Run a select and try to edit any value in the "Data Editor"
    3. The message "Column is read-only" appears.

    Thank you.

    bug 
    opened by ajpuerta 74
  • Set Active Database

    Set Active Database

    System information:

    • Operating system (distribution) and version Linux Mint 19 Tricia
    • DBeaver version 6.3.3
    • Java version
    • Additional extensions

    Connection specification:

    • Database name and version
    • Driver name
    • Do you use tunnels or proxies (SSH, SOCKS, etc)?

    Describe the problem you're observing:

    Steps to reproduce, if exist:

    Include any warning/errors/backtraces from the logs

    Son como la verga, no está la opción set active y trabajo con multiples bases de datos

    enhancement xp:major 
    opened by 19edison 71
  • "Client home is not specified for connection"

    You really gotta specify what this means in the export database window, i have no idea what to set, and no idea what it's about either.

    I can't export it because of this (i think).

    bug 
    opened by MrBrax 61
  • Add support for Multiple selections (multi-cursor)

    Add support for Multiple selections (multi-cursor)

    Is your feature request related to a problem? Please describe. Oftentimes I'm copying and pasting from another coding language to try create my queries, being able to select multiple lines in dBeaver would prevent me from needing to write my queries in another code editor and then paste in.

    Describe the solution you'd like Add the ability to have multiple cursor editing. It's standard in many code editors (Atom, Sublime, VSCode, etc).

    Describe alternatives you've considered Copying and Pasting into another editor to create queries.

    Additional context Looks like this: multi-cursor

    feature request xp:major third party issue sp:3 
    opened by adbakke 57
  • Individual SQL formatter

    Individual SQL formatter

    I would like to have an option to customize the SQL formatter. Different people have different styles formatter an SQL query and I would like it very much if DBeaver could automatically format SQL statements the way I want them. An easy way would be to add an option where one can set a program path. This program takes the SQL from STDIN and outputs it formatted on STDOUT. So everybody can use or write his own formatter script.

    feature request xp:minor 
    opened by sonntagd 54
  • Context menu in database navigator

    Context menu in database navigator

    When I right-clic on an item in the database navigator I cannot see the context menu. I'm using DBeaver 6.1.4 on Linux Mint 19.1 Cinnamon . In DBeaver 6.1.3 I can see the menu.

    bug xo:linux 
    opened by cldscchttn 53
  • Canceling the query takes forever

    Canceling the query takes forever

    image

    My DB is on VPN. I accidentally hit execute query, later I came to know I didn't connect to VPN. Now I decide to cancel the query in execution. I cancelled it, but still it can't cancel it. It takes forever now, before it can stop execution.

    bug 
    opened by antonyr 52
  • DBeaver 8.0: impossible to specify PostgreSQL client home

    DBeaver 8.0: impossible to specify PostgreSQL client home

    Hi,

    I'm testing the new DBeaver release 8.0 on Linux Mint 17.3. When I try the new "Backup database" tool, I have a message on top of the "Database backup" window displaying: "Client home is not specified for connection".

    So, I edit my connection. There, I suppose the client home can be defined with "Local Client" combobox. I clic on "Browse...", then on "Add home" and I select the repository where my local PostgreSQL binaries are on my computer. When I validate, nothing appears in the window. The fields ID, Path, Name, etc. can not be filled in.

    I have the same problem in the PostgreSQL driver interface.

    What am I doing wrong?

    Thanks for your help. Regards,

    Cedric

    bug 
    opened by ced75 51
  • "invalid privatekey" connecting through SSH tunnel

    Connection specification:

    MySQL connection via SSH Tunnel to Ubuntu 16.04 server

    Describe the problem you're observing:

    Just done a fresh install on my laptop and now cannot connect to remote server using the new SSH key I generated.

    Key was generated like so: ssh-keygen -t rsa -b 4096 -C

    I can connect to the server in question just fine via ssh user@host in a terminal but with the same host, user and private key reference under the 'SSH Tunnel' tab I get:

    Can't initialize tunnel
      Cannot establish tunnel
      Cannot establish tunnel
        invalid privatekey: [B@7696c31f
        invalid privatekey: [B@7696c31f
    

    I added the SSHJ extension after reading through similar issues but it's not helped

    Am I missing something?

    System information:

    • DBeaver 6.0.3.201904211926 org.jkiss.dbeaver.core.product
    • DBeaver SSHJ .0.28.201904211926 org.jkiss.dbeaver.net.sshj.feature.feature.group JKISS
    • Host OS: Fedora 30
    • Open SSL version:OpenSSH_7.9p1, OpenSSL 1.1.1b FIPS 26 Feb 2019
    • java -version:
    openjdk version "1.8.0_201"
    OpenJDK Runtime Environment (build 1.8.0_201-b09)
    OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
    
    bug 
    opened by dmlogic 44
  • Read-only: No Corresponding table column

    Read-only: No Corresponding table column

    Starting in 2020, there has been this problem from a certain version of 7.2 to the latest version 7.3: Read-only: No Corresponding table column screenshot: 1

    Version 7.2 does not have this problem before September 2020, screenshot: 22

    bug enhancement x:mssql xf:sql sp:2 
    opened by yjd 41
  • Editing column data in UI does not work when primary key is uuid

    Editing column data in UI does not work when primary key is uuid

    System information:

    • Operating system (distribution) and version: Windows 10
    • DBeaver version: 7.2.2.202010041557

    Connection specification:

    • Database name and verison: Postgres (tested on 9.6 and 11)
    • Driver name: PostgreSQL JDBC Driver
    • Do you use tunnels or proxies (SSH, SOCKS, etc): No

    Describe the problem you're observing:

    When editing the value of a cell, pressing "Save" will give the error Object parameter [4e3f75d2-3375-4040-9c02-3a8c15a8be87] binding not supported where 4e3f75d2-3375-4040-9c02-3a8c15a8be87 is the value of the primary key column. The primary key column is of type uuid. The type of the edited cell it self does not seem to matter (tested with text, int and jsonb). Doing the same on a table with primary key of type int, works fine.

    Steps to reproduce, if exist:

    CREATE TABLE test (
      id uuid,
      name text,
      PRIMARY KEY (id)
    );
    
    INSERT INTO test 
      VALUES 
        ('72644fac-9e7b-4da3-b801-ba80c1bb4fd5', 'test 1'), 
        ('6b24f99a-4c58-4bac-92c3-5a756281d431', 'test 2');
    
    SELECT * FROM test;
    

    Mark one of the name cells and press shift+enter to open the editor. image

    Change the value and press "Save"

    Press "Save" in the bottom left (or ctrl+s).

    Gives this error: image

    If I do the same with a table that has an int primary key column (instead of a uuid), it works just fine.

    Include any warning/errors/backtraces from the logs

    !ENTRY org.jkiss.dbeaver.model 4 0 2020-10-05 08:58:29.382 !MESSAGE Object parameter [6b24f99a-4c58-4bac-92c3-5a756281d431] binding not supported !SUBENTRY 1 org.jkiss.dbeaver.model 4 0 2020-10-05 08:58:29.382 !MESSAGE Object parameter [6b24f99a-4c58-4bac-92c3-5a756281d431] binding not supported !STACK 0 org.jkiss.dbeaver.model.exec.DBCException: Object parameter [6b24f99a-4c58-4bac-92c3-5a756281d431] binding not supported at org.jkiss.dbeaver.model.impl.data.DefaultValueHandler.bindValueObject(DefaultValueHandler.java:60) at org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTable$2.bindStatement(JDBCTable.java:466) at org.jkiss.dbeaver.model.impl.data.ExecuteBatchImpl.processBatch(ExecuteBatchImpl.java:156) at org.jkiss.dbeaver.model.impl.data.ExecuteBatchImpl.execute(ExecuteBatchImpl.java:77) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetPersister$DataUpdaterJob.executeStatements(ResultSetPersister.java:804) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetPersister$DataUpdaterJob.lambda$1(ResultSetPersister.java:690) at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:168) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetPersister$DataUpdaterJob.executeStatements(ResultSetPersister.java:689) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetPersister$DataUpdaterJob.run(ResultSetPersister.java:627) at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:105) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

    bug x:postgresql xp:major 
    opened by nheilbuth 40
  • @Set multiple strings in a list as 1 variable

    @Set multiple strings in a list as 1 variable

    Description

    I'm trying to set multiple strings in a variable that I can use in multiple case statements within my query.

    @set olv_code = in ('857','858','859','865','866','867','868','869','870’,’871','813','814','815','816','820','821','822','823','824','825','826','819','298', '299', '300', '301', '302', '303', '304', '233', '234', '235', '259', '260', '261', '031', '032', '033')

    SELECT campaign, CASE est_code = :olv_code then 1 else 0 end as test

    Any guidance on creating a "list" that can be used in my case statements? I have 49 instances in a 900-line query, and codes need to be added continually so I would prefer to only add the codes once each time.

    Thanks in advance!

    DBeaver Version

    Community 21.3.5

    Operating System

    Windows 10

    Database and driver

    Hive Hadoop / Apache Hive

    Steps to reproduce

    No response

    Additional context

    No response

    bug wait for review 
    opened by aspano79 0
  • #8647 use case insensitive schemas search for MIXED case databases

    #8647 use case insensitive schemas search for MIXED case databases

    2023-01-05 15_54_53-

    @Nullable
        public static <T extends DBPNamedObject> T findObject(@Nullable Collection<T> theList, String objectName, boolean caseInsensitive) {
            if (theList != null && !theList.isEmpty()) {
                for (T object : theList) {
                    if (caseInsensitive ? object.getName().equalsIgnoreCase(objectName) : object.getName().equals(objectName)) {
                        return object;
                    }
                }
            }
            return null;
        }
    

    to not use caseInsensitive as false always for schema searching IMHO, Mixed case databases usually do not have the ability to create objects with the same name (like PG or Sybase). If you have schema "test," you can not create "TEST".

    opened by LonwoLonwo 0
  • Office Integration Extension - Office Support

    Office Integration Extension - Office Support

    Description

    I have followed the instructions to install the P2 extension for Office Support so we can export to XLSX files. This feature seems to only work 1 time but does not export the data. It just export the headers of the columns. When we try to export a second time no file gets generated even though DBeaver says the task completed.

    image

    When we try to change the location of where the xlsx files writes to we get the following error. The user running the function has admin privileges on all folders on the computer.

    image

    java.lang.NoClassDefFoundError: org/jkiss/dbeaver/model/data/DBDAttributeDecorator at org.jkiss.dbeaver.data.office.export.DataExporterXLSX.exportHeader(DataExporterXLSX.java:335) at org.jkiss.dbeaver.tools.transfer.stream.StreamTransferConsumer.exportHeaderInFile(StreamTransferConsumer.java:238) at org.jkiss.dbeaver.tools.transfer.stream.StreamTransferConsumer.fetchStart(StreamTransferConsumer.java:175) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.fetchQueryData(SQLQueryJob.java:757) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeStatement(SQLQueryJob.java:609) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.lambda$1(SQLQueryJob.java:486) at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:172) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:493) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.extractData(SQLQueryJob.java:894) at org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:3645) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetDataContainer.readData(ResultSetDataContainer.java:125) at org.jkiss.dbeaver.tools.transfer.database.DatabaseTransferProducer.lambda$0(DatabaseTransferProducer.java:259) at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:172) at org.jkiss.dbeaver.tools.transfer.database.DatabaseTransferProducer.transferData(DatabaseTransferProducer.java:176) at org.jkiss.dbeaver.tools.transfer.database.DatabaseTransferProducer.transferData(DatabaseTransferProducer.java:1) at org.jkiss.dbeaver.tools.transfer.DataTransferJob.transferData(DataTransferJob.java:114) at org.jkiss.dbeaver.tools.transfer.DataTransferJob.run(DataTransferJob.java:86) at org.jkiss.dbeaver.runtime.RunnableContextDelegate.lambda$0(RunnableContextDelegate.java:39) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

    DBeaver Version

    Community Edition Version 22.2.0.202209051344

    Operating System

    Windows 11 Enterprise

    Database and driver

    Database Name : LANDPRD Database Version: 12.2.0.1.0 Driver: Oracle

    Steps to reproduce

    Execute the query, display the data, select the export data option, select the XLSX option, click on next, choose the table settings, click on next, configure options and parameters of output, click on next, check results and click on to finish. When I open the generated file, only column headers are there and not data.

    Additional context

    No response

    wait for response question 
    opened by meachcarnahan 1
  • Comment of Oracle

    Comment of Oracle

    Description

    When some comments sql submitted, but the soft fell in error, what should I do?

    DBeaver Version

    Dbeaver 7.2.4

    Operating System

    No response

    Database and driver

    No response

    Steps to reproduce

    No response

    Additional context

    No response

    bug x:oracle wait for response 
    opened by clearLove8080 1
  • Can not open connection to Hive

    Can not open connection to Hive

    Description

    I trying to connect one HIveDB from DBeaver and i am getting the error as shown above . i can connect to the server using other tools like Putty, WinScp and Hive Shell. Any help regrading this is highly appreciated.

    DBeaver Version

    22.0.4

    Operating System

    Windows 10 Enterprise

    Database and driver

    1 . Database HIVE and Driver "org.apache.hive.jdbc.HiveDriver"

    hive-jdbc-uber-2.6.5.0-292.jar

    Steps to reproduce

    1. I try to connect to the database using credentials
    2. i get this error Could not open client transport with JDBC Uri: jdbc:hive2://{HiveServer}:10001/{DB}: java.net.ConnectException: Connection refused: connect java.net.ConnectException: Connection refused: connect java.net.ConnectException: Connection refused: connect Connection refused: connect Connection refused: connect I kept server name as hidden.

    Additional context

    No response

    bug x:hive wait for response xf:connection 
    opened by nsaolapu 3
Releases(22.3.1)
Owner
DBeaver
Universal Database Managers and SQL Clients
DBeaver
🚀flink-sql-submit is a custom SQL submission client

??flink-sql-submit is a custom SQL submission client This is a customizable extension of the client, unlike flink's official default client.

ccinn 3 Mar 28, 2022
HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL

HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL, stored procedures, more dialect 20+, nested transactions, multiple data sources, conditional constructors, INSERT strategies, multiple statements/multiple results. And compatible with Spring and MyBatis usage.

赵永春 17 Oct 27, 2022
sql2o is a small library, which makes it easy to convert the result of your sql-statements into objects. No resultset hacking required. Kind of like an orm, but without the sql-generation capabilities. Supports named parameters.

sql2o Sql2o is a small java library, with the purpose of making database interaction easy. When fetching data from the database, the ResultSet will au

Lars Aaberg 1.1k Dec 28, 2022
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.

About CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time. CrateDB offers the

Crate.io 3.6k Jan 2, 2023
An open source SQL database designed to process time series data, faster

English | 简体中文 | العربية QuestDB QuestDB is a high-performance, open-source SQL database for applications in financial services, IoT, machine learning

QuestDB 9.9k Jan 1, 2023
Database Subsetting and Relational Data Browsing Tool.

Jailer Database Tool Jailer is a tool for database subsetting and relational data browsing. The Subsetter exports consistent, referentially intact row

Wisser 1.5k Jan 7, 2023
jdbi is designed to provide convenient tabular data access in Java; including templated SQL, parameterized and strongly typed queries, and Streams integration

The Jdbi library provides convenient, idiomatic access to relational databases in Java. Jdbi is built on top of JDBC. If your database has a JDBC driv

null 1.7k Dec 27, 2022
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)

Trino is a fast distributed SQL query engine for big data analytics. See the User Manual for deployment instructions and end user documentation. Devel

Trino 6.9k Dec 31, 2022
requery - modern SQL based query & persistence for Java / Kotlin / Android

A light but powerful object mapping and SQL generator for Java/Kotlin/Android with RxJava and Java 8 support. Easily map to or create databases, perfo

requery 3.1k Jan 5, 2023
The official home of the Presto distributed SQL query engine for big data

Presto Presto is a distributed SQL query engine for big data. See the User Manual for deployment instructions and end user documentation. Requirements

Presto 14.3k Dec 30, 2022
jOOQ is the best way to write SQL in Java

jOOQ's reason for being - compared to JPA Java and SQL have come a long way. SQL is an "ancient", yet established and well-understood technology. Java

jOOQ Object Oriented Querying 5.3k Jan 4, 2023
Java code generator for calling PL/SQL.

OBridge OBridge provides a simple Java source code generator for calling Oracle PL/SQL package procedures. Supported input, output parameters and retu

Ferenc Karsany 21 Oct 7, 2022
Persistent priority queue over sql

queue-over-sql This projects implement a persistent priority queue (or a worker queue) (like SQS, RabbitMQ and others) over sql. Why? There are some c

Shimon Magal 13 Aug 15, 2022
SQL tasarım komutları ve Backend yazıldı. Projeye yıldız Vermeyi Unutmayın 🚀 Teşekkürler! ❤️

HumanResourcesManagementSystem-HRMS SQL tasarım komutları ve Backend yazıldı. Projeye yıldız Vermeyi Unutmayın ?? Teşekkürler! ❤️ insan kaynakları yön

samet akca 7 Nov 6, 2022
The public release repository for SUSTech SQL (CS307) course project 2.

CS307 Spring 2021 Database Project 2 1. Source code Download link: For java: https://github.com/NewbieOrange/SUSTech-SQL-Project2-Public For python: h

null 16 Dec 26, 2022
SQL made uagliò.

GomorraSQL is an easy and straightforward interpreted SQL dialect that allows you to write simpler and more understandable queries in Neapolitan Langu

Donato Rimenti 1.1k Dec 22, 2022
Multi-DBMS SQL Benchmarking Framework via JDBC

BenchBase BenchBase (formerly OLTPBench) is a Multi-DBMS SQL Benchmarking Framework via JDBC. Table of Contents Quickstart Description Usage Guide Con

CMU Database Group 213 Dec 29, 2022
Simple but powerful SQL library for tiny projects

KiORM - Simple and powerful MySQL Java library for tiny projects Notice: KiORM is still in SNAPSHOT state. The code is not tested, there is no Javadoc

Rikonardo 2 Sep 13, 2022