DBeaver Community has two Fedora builds, and they are not interchangeable. The RPM from dbeaver.io bundles its own Java and can use the native client tools on the host. The Flathub build bundles a different Java, updates through Flatpak, and has no database client tools in its base sandbox. Pick the wrong one and backups will surprise you later.
This guide installs both, verifies the RPM against the SHA-256 file DBeaver publishes, connects to a MariaDB database on the same machine and runs real queries. It also covers the Fedora 45 change that breaks the old rpm -Uvh instructions and an RPM upgrade that dnf reports as failed. The install and connection steps were run on Fedora 45 and Fedora 44 with the Workstation desktop and SELinux enforcing in October 2026, using DBeaver Community 26.2.2; the release where each upgrade and Flatpak check ran is named in its section.
Choose the RPM or the Flatpak
Both builds track the same release. The differences are in packaging, and they matter more than the version number. We installed each one on Fedora 45 and Fedora 44 and checked what it actually does on a GNOME desktop:
| What we checked | RPM from dbeaver.io | Flatpak from Flathub |
|---|---|---|
| Size on disk | About 203 MiB in /usr/share/dbeaver-ce | 298 MB app, plus the GNOME runtime |
| Java | Bundled Temurin 25, no system Java needed | Bundled OpenJDK 21 in /app/jre |
| Display on GNOME | Native Wayland window | Native Wayland window |
| Package signature | Unsigned, verify with the published SHA-256 | Checked by Flatpak against Flathub |
| Updates | Download the new RPM and upgrade by hand | flatpak update |
mysqldump, pg_dump available to DBeaver | Whatever is installed on the host | None in the base app; Flathub lists optional client add-ons |
| Connections and saved passwords | ~/.local/share/DBeaverData, shared by both builds | |
Use the RPM if you plan to run the dump and restore tools in DBeaver, because those call the native client binaries. Use the Flatpak if you want updates through flatpak update and some isolation, but note that it can read your whole home directory. The last row catches people out: both builds read the same workspace, so installing one after the other carries every saved connection across.
Download and verify the RPM
The latest-stable link redirects to the current GitHub release asset, so it never needs a version in the URL. Download it into your home directory:
cd ~
curl -sSLo dbeaver-ce-latest-stable.x86_64.rpm https://dbeaver.io/files/dbeaver-ce-latest-stable.x86_64.rpm
ls -lh dbeaver-ce-latest-stable.x86_64.rpm
The package is a little over 120 MB:
-rw-r--r--. 1 josphat josphat 122M Oct 10 20:16 dbeaver-ce-latest-stable.x86_64.rpm
DBeaver doesn’t sign its RPM, and rpm -qpi reports Signature : (none). Check it with rpm -K:
rpm -K dbeaver-ce-latest-stable.x86_64.rpm
Fedora 45 checks signatures as well as digests, so it fails and exits with code 1:
dbeaver-ce-latest-stable.x86_64.rpm: digests SIGNATURES NOT OK
Fedora 44 prints digests OK for the same file, because its rpm only checks digests by default. Neither result proves where the file came from. DBeaver publishes a SHA-256 file for every release on dbeaver.io, a different host from the GitHub download. Read the current version from the GitHub API and fetch that file:
VER=$(curl -s https://api.github.com/repos/dbeaver/dbeaver/releases/latest | python3 -c 'import json,sys; print(json.load(sys.stdin)["tag_name"])'); echo $VER; curl -fsSL https://dbeaver.io/files/$VER/checksum/dbeaver-ce-$VER-linux-x86_64.rpm.sha256
It prints the version and the published hash:
26.2.2
ac034c7a0ec44da1231a0a7de844b2b394bc3744ccb0251efb36bb00182c8c76
Hash the file you downloaded and compare:
sha256sum dbeaver-ce-latest-stable.x86_64.rpm
The two values match, so the file is the one DBeaver released:
ac034c7a0ec44da1231a0a7de844b2b394bc3744ccb0251efb36bb00182c8c76 dbeaver-ce-latest-stable.x86_64.rpm
Install the RPM with dnf
Older guides, including the previous version of this one, used sudo rpm -Uvh. Neither that nor sudo rpm -ivh works on Fedora 45; we ran rpm -ivh, which goes through the same verification. Its rpm ships with %{_pkgverify_level} set to all, so rpm refuses any package it cannot verify, and an unsigned package can never pass. The same command on Fedora 44 still installs the file. This is what Fedora 45 prints:
Verifying... ########################################
Preparing... ########################################
package dbeaver-ce-0:26.2.2-stable.x86_64 does not verify: no signature
Nothing gets installed. Our guide to rpm signature errors on Fedora covers this policy in detail. For DBeaver the fix is simple: install through dnf, which handles local files with its own setting and works on both releases:
sudo dnf install -y ./dbeaver-ce-latest-stable.x86_64.rpm
One package, no dependencies, about 203 MiB on disk:
Package Arch Version Repository Size
Installing:
dbeaver-ce x86_64 0:26.2.2-stable @commandline 202.6 MiB
Transaction Summary:
Installing: 1 package
Total size of inbound packages is 122 MiB. Need to download 0 B.
After this operation, 203 MiB extra will be used (install 203 MiB, remove 0 B).
Running transaction
[1/3] Verify package files 100% | 2.0 B/s | 1.0 B | 00m00s
[2/3] Prepare transaction 100% | 9.0 B/s | 1.0 B | 00m00s
[3/3] Installing dbeaver-ce-0:26.2.2-st 100% | 180.2 MiB/s | 202.8 MiB | 00m01s
Warning: skipped OpenPGP checks for 1 package from repository: @commandline
Complete!
The warning is expected. dnf skips OpenPGP checks on local files because localpkg_gpgcheck defaults to 0, and here there is no signature to check anyway. The checksum you compared above is what proves the file. You also do not need to install Java first. The package carries its own runtime:
/usr/share/dbeaver-ce/jre/bin/java -version
It is an Eclipse Temurin build:
openjdk version "25.0.4.1" 2026-08-18 LTS
OpenJDK Runtime Environment Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS, mixed mode)
Launch DBeaver and opt out of telemetry
Search for dbeaver in the GNOME overview, or start it from a terminal with dbeaver-ce. Use that name rather than dbeaver. The package owns /usr/bin/dbeaver-ce, while /usr/bin/dbeaver is a symlink a post-install script creates, and an upgrade can delete it (more on that below).
The first start opens a Product Configuration wizard: language, theme, the optional AI and dashboard features, then data collection. The usage statistics page has Share anonymous usage statistics selected by default:

Pick Do not share anonymous usage statistics if the workstation touches anything sensitive. The last page offers a sample SQLite database and Tip of the day. We skipped both and clicked Apply. Reopen the wizard later from Help, Show Product Configuration.
Create a test database in MariaDB
DBeaver needs something to connect to. The Fedora repositories carry MariaDB, MySQL and PostgreSQL servers, so any of them works. This guide uses MariaDB from the default mariadb-server package. The full server setup is in our MariaDB on Fedora guide, and PostgreSQL on Fedora is the alternative. Install and start it:
sudo dnf install -y mariadb-server
sudo systemctl enable --now mariadb
mariadb --version
Fedora 45 and Fedora 44 ship different MariaDB series. This is the Fedora 45 line:
mariadb from 12.3.2-MariaDB, client 15.2 for Linux (x86_64) using EditLine wrapper
Create a database and a user that can only touch it. Pick your own password in place of the example:
sudo mariadb -e "CREATE DATABASE test_db; CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'Db-Example-Pass-2026'; GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost';"
Then add a small table so there is data to look at:
sudo mariadb test_db -e "CREATE TABLE servers (id INT AUTO_INCREMENT PRIMARY KEY, hostname VARCHAR(64) NOT NULL, os VARCHAR(32), ram_gb INT, added TIMESTAMP DEFAULT CURRENT_TIMESTAMP); INSERT INTO servers (hostname, os, ram_gb) VALUES ('web01','Fedora 45',8),('web02','Fedora 44',8),('db01','Rocky Linux 10',32),('cache01','Debian 13',4);"
sudo mariadb test_db -e 'SELECT id,hostname,os,ram_gb FROM servers'
Four rows come back:
id hostname os ram_gb
1 web01 Fedora 45 8
2 web02 Fedora 44 8
3 db01 Rocky Linux 10 32
4 cache01 Debian 13 4
Connect DBeaver to MariaDB
Press Ctrl+Shift+N or click the plug icon to open Connect to a database. Pick MariaDB and click Next. Keep the host as localhost and port 3306, then fill in the database, user and password you created:

Click Test Connection. A fresh install has no JDBC drivers, so DBeaver asks to download the MariaDB connector from Maven Central. Expand Show details to see exactly which artifact it fetches:

Click Download. The jar lands in ~/.local/share/DBeaverData/drivers/maven/maven-central/org.mariadb.jdbc/, and the test runs as soon as it finishes. The first test took 30 seconds on Fedora 45 because it included the download:

Fedora 44 gives the same result against its own, older MariaDB server:

Click OK, then Finish. Expand the connection in the navigator down to Databases, test_db, Tables and double-click servers. The Data tab shows the rows in an editable grid:

For ad hoc queries, open a SQL script with Ctrl+]. Type the query and run the statement under the cursor with Ctrl+Enter:

The connection definition goes in data-sources.json and the saved password in credentials-config.json, both under ~/.local/share/DBeaverData/workspace6/General/.dbeaver/. Back that directory up if you have dozens of connections. SELinux logged no denials for DBeaver on either release during any of this.
Install the Flatpak build instead
The cloud-based Fedora installs we used had only the fedora Flatpak remote, so Flathub has to be added first. Our Flatpak and Flathub guide for Fedora covers the remote in more depth:
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub io.dbeaver.DBeaverCommunity
The install took just under two minutes on Fedora 45, most of it spent on the GNOME runtime. Check what the sandbox is allowed to do:
flatpak info --show-permissions io.dbeaver.DBeaverCommunity
It gets the network, your whole home directory and the Secret Service bus:
[Context]
shared=ipc;network;
sockets=fallback-x11;pulseaudio;ssh-auth;wayland;
devices=dri;
filesystems=home;
[Session Bus Policy]
org.freedesktop.Notifications=talk
org.freedesktop.secrets=talk
org.freedesktop.FileManager1=talk
[Environment]
PATH=/app/clients/bin:/app/jre/bin:/usr/bin:/app/bin
filesystems=home is why the Flatpak reads the same ~/.local/share/DBeaverData as the RPM. The PATH lists /app/clients/bin, the mount point for optional client add-ons on Flathub (io.dbeaver.DBeaverCommunity.Client.mariadb and .pgsql, which we did not test). Without them the sandbox has no mysqldump or pg_dump:
flatpak run --command=sh io.dbeaver.DBeaverCommunity -c "java -version 2>&1 | head -2; mysqldump --version; pg_dump --version"
Java is the OpenJDK copy bundled into the app, and both dump tools are missing:
openjdk version "21.0.12.1" 2026-08-18
OpenJDK Runtime Environment 25.08 (build 21.0.12.1)
sh: line 1: mysqldump: command not found
sh: line 1: pg_dump: command not found
With both builds installed, the GNOME overview shows two launchers. dbeaver-ce is the RPM and DBeaver CE is the Flatpak:

We launched the Flatpak after the RPM had already been set up. It skipped the wizard, listed the test_db connection and connected with the saved password. Both builds draw native Wayland windows on GNOME. The RPM build also opens a connection to Xwayland, but its window does not appear in the X11 window tree:

We ran one build at a time against the shared workspace. Close the RPM build before opening the Flatpak, and the other way round.
Update DBeaver
Update the Flatpak build on its own:
sudo flatpak update -y io.dbeaver.DBeaverCommunity
There’s no repository behind the RPM, so updates mean downloading the new file and upgrading with dnf. On Fedora 45 we installed the previous release fresh and then upgraded it to the current one. dnf reported a failure:
[3/4] Upgrading dbeaver-ce-0:26.2.2-sta 100% | 230.4 MiB/s | 202.8 MiB | 00m01s
>>> Running %post scriptlet: dbeaver-ce-0:26.2.2-stable.x86_64
>>> Non-critical error in %post scriptlet: dbeaver-ce-0:26.2.2-stable.x86_64
>>> Scriptlet output:
>>> ln: failed to create symbolic link '/usr/bin/dbeaver': File exists
>>>
>>> [RPM] %post(dbeaver-ce-0:26.2.2-stable.x86_64) scriptlet failed, exit status 1
[4/4] Removing dbeaver-ce-0:26.2.1-stab 100% | 4.5 KiB/s | 942.0 B | 00m00s
Transaction failed: Rpm transaction failed.
dnf exited with code 1, yet the new version was installed, rpm -V dbeaver-ce passed, and only /usr/bin/dbeaver-ce was left. The package scripts explain it:
rpm -q --scripts dbeaver-ce
The post-install script creates the dbeaver symlink under set -e, and the pre-uninstall script removes it:
postinstall scriptlet (using /bin/sh):
#!/bin/sh
set -e
PRODUCT_MODIFIER="ce"
# https://github.com/dbeaver/dbeaver/issues/13555
if [ "$PRODUCT_MODIFIER" = "ce" ]; then
ln -s "/usr/share/dbeaver-$PRODUCT_MODIFIER/dbeaver" /usr/bin/dbeaver
fi
exit 0
preuninstall scriptlet (using /bin/sh):
#!/bin/sh
set -e
PRODUCT_MODIFIER="ce"
SYMLINK=/usr/bin/dbeaver
if [ "$PRODUCT_MODIFIER" = "ce" ] && [ -f "$SYMLINK" ] ; then
rm $SYMLINK
fi
exit 0
During an upgrade rpm runs the post-install script of the new package first and the pre-uninstall script of the old package after it. After a fresh install the link already exists, so ln -s fails and the transaction is marked failed. The old package then deletes the link. The fix is to remove the link before upgrading. Download the new file first and verify it with the checksum step above:
cd ~
curl -sSLo dbeaver-ce-latest-stable.x86_64.rpm https://dbeaver.io/files/dbeaver-ce-latest-stable.x86_64.rpm
Once the hash matches, remove the link and upgrade:
sudo rm -f /usr/bin/dbeaver
sudo dnf upgrade -y ./dbeaver-ce-latest-stable.x86_64.rpm
This time dnf finishes normally:
Warning: skipped OpenPGP checks for 1 package from repository: @commandline
Complete!
The dbeaver link is still gone afterwards, removed by the script in the old package. Either point shortcuts and scripts at dbeaver-ce, which the package owns, or recreate the link with sudo ln -s /usr/share/dbeaver-ce/dbeaver /usr/bin/dbeaver. If you recreate it, keep the rm -f step in every future upgrade.
Remove DBeaver
Remove whichever build you installed. The third command also clears runtimes nothing else uses:
sudo dnf remove -y dbeaver-ce
sudo flatpak uninstall -y io.dbeaver.DBeaverCommunity
sudo flatpak uninstall -y --unused
None of these touches your workspace. Delete ~/.local/share/DBeaverData to drop connections, saved passwords and downloaded drivers, and ~/.var/app/io.dbeaver.DBeaverCommunity if you ran the Flatpak.
Production notes
- Give DBeaver an account scoped to the databases it needs, like
test_userabove, not the root account of the server. - The Fedora MariaDB package listens on all interfaces. Keep port 3306 closed in firewalld and use the SSH tunnel tab in DBeaver for remote servers.
- The saved password file sits in your home directory. Anyone who can read your home can take it, so leave Save password off for production connections.
- If you manage MySQL specifically, the Oracle client is covered in our MySQL Workbench on Fedora guide. For more tools, see our roundup of MySQL and MariaDB clients, and the DBeaver guide for Ubuntu and Debian covers the Debian side.
The rest of the Fedora 45 changes that affect desktop software are in what is new in Fedora 45.
Thank you so much!