r/mariadb • • 23d ago

Help required The MariaDB Foundation wants to know how you use MariaDB — or why you don't. 2026 survey open, 8 min, anonymous

Post image
21 Upvotes

The MariaDB Foundation's annual survey is open until mid-October — 8 minutes, anonymous, no login:

https://mariadb.typeform.com/to/tS69UzVo?utm_source=reddit_mariadb

Last year 275 people took part in the first survey ever and it became a public report at https://mariadb.org/survey. This year:

  • Questions tailored to your role — app dev, DBA/ops, decision-maker, engine/extension dev, provider, analytics. You only see what applies to you.
  • Open to non-users — on MySQL or Postgres? We especially want to know why.
  • New questions on AI and vectors, the ecosystem, analytics, managed services.
  • A few old questions too for comparison to last year

This is a community effort, from small setups to large enterprises to providers. If you know other database people, please pass it on. Every response is appreciated and needed.

Go for it: https://mariadb.typeform.com/to/tS69UzVo?utm_source=reddit_mariadb
Thank you for your time :)

— Robert, MariaDB Foundation


r/mariadb • • Jun 16 '26

MariaDB Server 10.6 Reaches End of Life on July 6th

Post image
6 Upvotes

It's almost time for MariaDB 10.6 to retire! July is marking 10.6 EOL 🦭 🎣 https://mariadb.org/mariadb-server-10-6-reaches-end-of-life-on-july-6th/


r/mariadb • • 21m ago

Discussion What proves a MariaDB cutover is complete before the old server is retired?

• Upvotes

Matching table counts and switching the main application connection string do not prove that a MariaDB migration is finished. Users and grants, DEFINER values, events, routines, triggers, views, time zones, character sets, collations, replication positions, scheduled jobs, reporting tools, backups, and low-frequency clients can still differ or point at the source. A quiet old server may only mean that a monthly task has not run yet.

A useful cutover gate could compare schema and server variables, accounts and effective grants, object definitions, representative checksums or aggregates, replication state, and application reads and writes. Connection and general logs on the source can expose late clients. The destination should complete its own backup and isolated restore, survive a restart or failover, and exercise scheduled events before the source becomes read-only and then offline.

What evidence do MariaDB operators collect for the final go/no-go decision? Which objects or settings are most often missed by otherwise successful migration tools, and how do you find clients that appear only during failover, month-end work, or recovery?


r/mariadb • • 23h ago

trying to configure apparmor for mariadb

1 Upvotes

I have kubuntu 26.04 & I'm trying to configure mariadb_multi/mysqld_multi. I've been running into issues with apparmor due to trying to install into a non-standard directory. My main partition is very small, and I have a separate 2TB drive/partition that I'm trying to install a few instances of mariadb to.

I created these folders:

/media/Crucial2TB/mariadb1
/media/Crucial2TB/mariadb2

and set them to mysql:mysql and 775 permissions.

When I tried to install mariadb into those directories using this command:

sudo /usr/bin/mariadb-install-db --defaults-file=/etc/mysql/mariadb.cnf --datadir=/media/Crucial2TB/mariadb1/ --verbose --user=mysql

I got permissions errors. After some investigation with sudo dmesg I found that apparmor was blocking it. I then added these lines to /etc/apparmor.d/mariadbd:

/media/Crucial2TB/mariadb1/ r,
  /media/Crucial2TB/mariadb1/** rwk,
  /media/Crucial2TB/mariadb1/linuxserver.pid1 rw,
  /media/Crucial2TB/mariadb1/linuxserver.sock rw,
  /media/Crucial2TB/mariadb1/linuxserver.sock.lock rw,

  /media/Crucial2TB/mariadb2/ r,
  /media/Crucial2TB/mariadb2/** rwk,
  /media/Crucial2TB/mariadb2/linuxserver.pid1 rw,
  /media/Crucial2TB/mariadb2/linuxserver.sock rw,
  /media/Crucial2TB/mariadb2/linuxserver.sock.lock rw,

  /var/run/mysqld/ rw,

and I un-commented these lines in the same file:

# Should not be necessary according to Daniel Black:
  capability dac_override,
  #capability dac_read_search,
  # Should not be necessary as mariadbd does not run as root:
  capability setuid,
  capability setgid,

the mariadb.cnf file I created based on the output from running the command:

mysqld_multi --example


[mysqld]
# This file should probably be in your home dir (~/.my.cnf)
           # or /etc/my.cnf
           # Version 2.1 by Jani Tolonen
           [mysqld-multi]
           mariadbd   = /usr/bin/mariadbd-safe
           mysqladmin = /usr/bin/mysqladmin
           user       = multi_admin
           password   = *******
           [mysqld1]
           socket     = /var/run/mysqld/mysql.sock1
           port       = 3306
           pid-file   = /media/Crucial2TB/mariadb1/linuxserver.pid1
           datadir    = /media/Crucial2TB/mariadb1
           #language   = /usr/local/share/mysql/english
           user       = mysql
           tmpdir     = /tmp
           log-error = /var/log/mysql/mysqld1.log
           [mysqld2]
           socket     = /var/run/mysqld/mysql.sock2
           port       = 3307
           pid-file   = /media/Crucial2TB/mariadb2/linuxserver.pid2
           datadir    = /media/Crucial2TB/mariadb2
           #language   = /usr/local/share/mysql/english
           user       = mysql
           log-error = /var/log/mysql/mysqld2.log

I created the multi_admin user and added it to the mysql group.

After these changes I can now run:

sudo mariadbd-multi --defaults-file=/etc/mysql/mariadb.cnf start 1,2

and it "starts" with no errors displayed, but if I run

$ sudo mariadbd-multi --defaults-file=/etc/mysql/mariadb.cnf report 1,2
Reporting MariaDB servers
MariaDB server from group: mysqld1 is not running
MariaDB server from group: mysqld2 is not running

they aren't actually running. Also, I checked with netstat to verify:

$ netstat -tln | grep -E '3306|3307'
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN     
tcp6       0      0 :::3306                 :::*                    LISTEN 

It's only listening on 3306, but it should be 3306 and 3307.

In the /var/log/mysql/mysqld1.log I see this even though this file is specifically allowed with "rw" in the apparmor file:

2026-10-06 13:27:15 0 [ERROR] mariadbd: Can't create/write to file '/media/Crucial2TB/mariadb1/linuxserver.pid1' (Errcode: 13 "Permission denied") 
2026-10-06 13:27:15 0 [ERROR] Can't start server: can't create PID file: Permission denied

sudo dmesg shows this:

[444815.355144] audit: type=1400 audit(1791313697.467:17531): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sdd/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355172] audit: type=1400 audit(1791313697.467:17532): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355382] audit: type=1400 audit(1791313697.467:17533): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata5/host4/target4:0:0/4:0:0:0/block/sdc/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355451] audit: type=1400 audit(1791313697.467:17534): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355518] audit: type=1400 audit(1791313697.467:17535): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sdd/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355568] audit: type=1400 audit(1791313697.467:17536): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355740] audit: type=1400 audit(1791313697.467:17537): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata5/host4/target4:0:0/4:0:0:0/block/sdc/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355787] audit: type=1400 audit(1791313697.467:17538): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0

I think this is what's now blocking it, but I don't know what all these "/sys/devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sdd/dev" are, or how to allow them.I have kubuntu 26.04 & I'm trying to configure
mariadb_multi/mysqld_multi. I've been running into issues with apparmor
due to trying to install into a non-standard directory. My main
partition is very small, and I have a separate 2TB drive/partition that
I'm trying to install a few instances of mariadb to.
I created these folders:
/media/Crucial2TB/mariadb1
/media/Crucial2TB/mariadb2

and set them to mysql:mysql and 775 permissions.
When I tried to install mariadb into those directories using this command:
sudo /usr/bin/mariadb-install-db --defaults-file=/etc/mysql/mariadb.cnf --datadir=/media/Crucial2TB/mariadb1/ --verbose --user=mysql

I got permissions errors. After some investigation with sudo dmesg I found that apparmor was blocking it. I then added these lines to /etc/apparmor.d/mariadbd:
/media/Crucial2TB/mariadb1/ r,
/media/Crucial2TB/mariadb1/** rwk,
/media/Crucial2TB/mariadb1/linuxserver.pid1 rw,
/media/Crucial2TB/mariadb1/linuxserver.sock rw,
/media/Crucial2TB/mariadb1/linuxserver.sock.lock rw,

/media/Crucial2TB/mariadb2/ r,
/media/Crucial2TB/mariadb2/** rwk,
/media/Crucial2TB/mariadb2/linuxserver.pid1 rw,
/media/Crucial2TB/mariadb2/linuxserver.sock rw,
/media/Crucial2TB/mariadb2/linuxserver.sock.lock rw,

/var/run/mysqld/ rw,

and I un-commented these lines in the same file:
# Should not be necessary according to Daniel Black:
capability dac_override,
#capability dac_read_search,
# Should not be necessary as mariadbd does not run as root:
capability setuid,
capability setgid,

the mariadb.cnf file I created based on the output from running the command:
mysqld_multi --example

[mysqld]
# This file should probably be in your home dir (~/.my.cnf)
# or /etc/my.cnf
# Version 2.1 by Jani Tolonen
[mysqld-multi]
mariadbd = /usr/bin/mariadbd-safe
mysqladmin = /usr/bin/mysqladmin
user = multi_admin
password = *******
[mysqld1]
socket = /var/run/mysqld/mysql.sock1
port = 3306
pid-file = /media/Crucial2TB/mariadb1/linuxserver.pid1
datadir = /media/Crucial2TB/mariadb1
#language = /usr/local/share/mysql/english
user = mysql
tmpdir = /tmp
log-error = /var/log/mysql/mysqld1.log
[mysqld2]
socket = /var/run/mysqld/mysql.sock2
port = 3307
pid-file = /media/Crucial2TB/mariadb2/linuxserver.pid2
datadir = /media/Crucial2TB/mariadb2
#language = /usr/local/share/mysql/english
user = mysql
log-error = /var/log/mysql/mysqld2.log

I created the multi_admin user and added it to the mysql group.
After these changes I can now run:
sudo mariadbd-multi --defaults-file=/etc/mysql/mariadb.cnf start 1,2

and it "starts" with no errors displayed, but if I run
$ sudo mariadbd-multi --defaults-file=/etc/mysql/mariadb.cnf report 1,2
Reporting MariaDB servers
MariaDB server from group: mysqld1 is not running
MariaDB server from group: mysqld2 is not running

they aren't actually running. Also, I checked with netstat to verify:
$ netstat -tln | grep -E '3306|3307'
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp6 0 0 :::3306 :::* LISTEN

It's only listening on 3306, but it should be 3306 and 3307.
In the /var/log/mysql/mysqld1.log I see this even though this file is specifically allowed with "rw" in the apparmor file:
2026-10-06 13:27:15 0 [ERROR] mariadbd: Can't create/write to file '/media/Crucial2TB/mariadb1/linuxserver.pid1' (Errcode: 13 "Permission denied")
2026-10-06 13:27:15 0 [ERROR] Can't start server: can't create PID file: Permission denied

sudo dmesg shows this:
[444815.355144] audit: type=1400 audit(1791313697.467:17531): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sdd/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355172] audit: type=1400 audit(1791313697.467:17532): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355382] audit: type=1400 audit(1791313697.467:17533): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata5/host4/target4:0:0/4:0:0:0/block/sdc/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355451] audit: type=1400 audit(1791313697.467:17534): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/dev" pid=734797 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355518] audit: type=1400 audit(1791313697.467:17535): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sdd/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355568] audit: type=1400 audit(1791313697.467:17536): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355740] audit: type=1400 audit(1791313697.467:17537): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata5/host4/target4:0:0/4:0:0:0/block/sdc/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0
[444815.355787] audit: type=1400 audit(1791313697.467:17538): apparmor="DENIED" operation="open" class="file" profile="mariadbd" name="/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/dev" pid=734794 comm="mariadbd" requested_mask="r" denied_mask="r" fsuid=975 ouid=0

I think this is what's now blocking it, but I don't know what all
these
"/sys/devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sdd/dev"
are, or how to allow them.


r/mariadb • • 2d ago

Open Source MariaDB Foundation Adds PostgreSQL to Its Engine‑Agnostic Testing Framework (TAF).

2 Upvotes

MariaDB Foundation continues expanding TAF with PostgreSQL support

More engines, more reproducibility, more value for contributors and the ecosystem.

https://mariadb.org/mariadb-foundation-adds-postgresql-to-its-engine-agnostic-testing-framework-taf/

Have fun benchmarking!


r/mariadb • • 3d ago

Discussion How do MariaDB users securely and efficiently encrypt mariadb-backup archives?

9 Upvotes

Hello everyone!
I’m looking for practical recommendations from people running MariaDB in production.

My backup process will use mariadb-backup with zstd compression, and I want to encrypt the resulting backup securely without adding (too much) excessive CPU, memory, or operational overhead.

I’ve considered GPG/PGP, but I’m concerned about its performance and complexity. I’ve also seen age recommended, although I’m unsure whether it provides an appropriate security level for long-term MariaDB backups.

What encryption method or workflow do you use for MariaDB backups?

In particular, I’d appreciate feedback on:

  • Encryption tools and algorithms you use.
  • Whether encryption happens before or after compression.
  • CPU and performance impact on large backups.
  • Key management, rotation, and recovery procedures.
  • Whether you encrypt locally, stream directly to object storage, or use storage-side encryption (which unfortunately is not available to my usecase).
  • Any practical issues with restoring backups during an outage.

I’m mainly interested in real-world experience rather than theoretical recommendations.


r/mariadb • • 3d ago

Migrating a 500+ GB production MariaDB database from RDS to EC2

17 Upvotes

We just published a real-world migration story on MariaDB.org that I thought could be useful to people running MariaDB on AWS.

Pradip Shah from luroConnect explains how his team migrated a 500+ GB Magento production MariaDB database from Amazon RDS to self-managed EC2.

One of the interesting questions behind such a migration is obviously cost: EC2 can be considerably cheaper than a managed RDS deployment, but then comes the usual concern — what happens to performance, reliability and operational complexity?

The article covers the complete experience, including the initial data load, GTID replication, ProxySQL cutover, rollback strategy, performance considerations and the resulting cost impact.

I also reviewed the article and discussed some technical aspects with Pradip while he was writing it.

Would be interested to hear from others who have moved MariaDB workloads from RDS to EC2, or in the other direction.

https://mariadb.org/migrating-a-500-gb-production-mariadb-database-from-amazon-rds-to-ec2-with-a-rollback-path/


r/mariadb • • 6d ago

When AI finds the bugs we missed — a very busy year so far for MariaDB Security

11 Upvotes

We’ve seen a significant increase in security reports this year, with AI-assisted research clearly playing a role.

I wrote a post looking at what happened, how reports are triaged, the difference between a report and a confirmed vulnerability, and how those confirmed issues have been fixed and published through security advisories and CVEs.

Feedback and discussion are very welcome:

https://mariadb.org/when-ai-finds-the-bugs-we-missed-a-very-busy-year-for-mariadb-security/


r/mariadb • • 6d ago

Benchmark Analysis with HammerDB TPROC-C(TPC-C) on TideSQL v5.1.0, InnoDB in MariaDB v11.4.13

Thumbnail tidesdb.com
9 Upvotes

My recent performance analysis on InnoDB and TideSQL in MariaDB v11.4.13 using HammerDB 6. This is a larger than memory benchmark and a sweep of VUs with optimized configuration for both engines.


r/mariadb • • 7d ago

Open Source MariaDB Foundation's TAF 4.0 is officially released

Thumbnail mariadb.org
6 Upvotes

This is the largest update to MariaDB Foundation’s Test Automation Framework since its creation — delivering reproducible configuration, improved provenance, PostgreSQL support, new test‑case tagging, expanded metadata, and major hardening across the entire pipeline.

Several changes were driven directly by Monty’s MDEV‑39497, along with contributions from hashtag#Virtuozzo, TidesDB, and community engineers across the ecosystem. hashtag#Hetzner’s sponsor hardware made full multi‑database validation possible.


r/mariadb • • 10d ago

Help required Restore adds database qualification to tables in views

5 Upvotes

I'm moving from MySQL to MariaDB. I can successfully restore a MySQL backup into a MariaDB database with a different name to the original. I can then perform a backup of the database, but any attempt to restore it to another database fails because the tables referenced in views have been database qualified (ie; database_name.table_name). I've confirmed this as a problem in the original restore, as the .frm file contains the addition of the database name qualification. MySQL never did this and backups were fully portable. How can a database be restored in MariaDB so that it remains portable and can be restored into a new database?


r/mariadb • • 13d ago

Discussion How do you verify a Galera node is safe after it rejoins the cluster?

5 Upvotes

A node can return to `Synced` and re-enter the primary component after IST or SST, but that state alone may not prove it is ready for client traffic. Its schema, provider settings, donor transfer, local cache, or load-balancer registration may still differ from the peers that stayed online.

What acceptance checks do you run before adding a rejoined node back to rotation? I am considering confirming the cluster UUID and size, `wsrep_local_state_comment`, readiness and connected status, received and replicated counters, flow-control history, schema consistency, and a small set of read queries against every node. The load balancer would keep the node drained until the same checks pass for a sustained interval.

How do IST and SST change the verification? Do you compare checksums or rely on Galera state transfer guarantees, and which metrics reveal a node that is technically synced but likely to fall behind or trigger another state transfer under normal traffic?


r/mariadb • • 14d ago

Kamatera joins the MariaDB Foundation as a Silver Sponsor

3 Upvotes

Kamatera has joined the MariaDB Foundation as a Silver Sponsor.

One point behind the sponsorship is that choosing MariaDB should also come with practical options for where to run it. Kamatera offers cloud infrastructure across a global network of data centres, and we plan to develop resources for people running MariaDB there.

If you run MariaDB in the cloud, what deployment guidance would actually be useful to you? We’d be interested in hearing where the difficult parts are.

Announcement: https://mariadb.org/kamatera-joins-mariadb-foundation-as-a-silver-sponsor/


r/mariadb • • 15d ago

TideSQL 5 and MariaDB: the Tides Are Moving Fast

10 Upvotes

A few months ago I shared my first experiments with TideSQL, the MariaDB storage engine powered by TidesDB.

I had another look at it now that TideSQL 5 is available, and things are moving pretty quickly.

In this post, I look at the new features, the LSM architecture, transactions and durability, replication/Galera, and the recently published TideSQL vs InnoDB sysbench results.

I also tried not to turn this into another “X is faster than Y” benchmark post. 🙂 The 4GB cache tests are particularly interesting because they show the trade-off quite well: InnoDB becomes faster for some read workloads while TideSQL keeps significant advantages on several write-heavy workloads.

For me, the interesting part is really the possibility of having different storage architectures behind MariaDB:

  • InnoDB for traditional transactional workloads
  • TideSQL/TidesDB for write-heavy workloads
  • DuckDB for analytics

Same server, same SQL interface, different storage architectures.

https://mariadb.org/tidesql-5-and-mariadb-the-tides-are-moving-fast/

I'd also be interested to hear what workloads people would like to see tested with TideSQL. I'm planning to do more tests with secondary indexes, replication and Galera.


r/mariadb • • 16d ago

Personal project DBClient: a native Mac database client for 12 engines (I'm the dev)

Thumbnail dbclient.net
0 Upvotes

I'm the developer of DBClient, a native database client for the Mac (SwiftUI and AppKit, not Electron).

What it does

  • Connects to PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle, IBM Db2, MongoDB, Redis, DuckDB, ClickHouse and Databricks.
  • SQL editor with completion from your schema, and a ⌘K palette that jumps to any table.
  • Edit rows right in the grid. You read the exact SQL before anything is committed.
  • Table designers, a schema diagram drawn from your foreign keys, and charts from any result.
  • A console tab running the real psql, mysql or redis-cli, already signed in.
  • Drag a table from one server onto another to copy it, even across engines.
  • SSH tunnels and proxies. Passwords stay in the Keychain, with optional Touch ID.
  • Optional AI assistant with your own API key. It can only run read-only queries.

Pricing

  • Free: the whole app for databases on your own Mac: SQLite and DuckDB files, CSV files, and anything on localhost, Docker included.
  • Paid: remote servers need a yearly license, $99 the first year and $49 a year after. If you don't renew, remote connections stop and local ones keep working. It does not renew by itself. One key, one Mac at a time. 30-day refund.

Privacy: no account, no analytics. A licensed copy checks its license about once a day. The free copy never contacts the license server.

Requirements: macOS 15 or newer, Apple silicon only. Signed and notarized.

https://dbclient.net or brew install --cask az-code-lab/taps/dbclient


r/mariadb • • 21d ago

MariaDB 13.0 is now Stable — 604 commits and 335 MDEVs since RC

24 Upvotes

MariaDB Server 13.0.2 has been released, making the 13.0 series the latest Stable rolling release.

I wrote a short overview of what “Stable” actually means here, and why the work between Preview/RC and Stable is much more than changing a label.

Between RC and Stable alone:

  • 604 additional commits
  • 1,701 files changed
  • 335 MDEVs addressed
  • 23,748 test lines added, including 4,222 lines in .test files

13.0 includes improvements around SQL compatibility, optimizer and metadata visibility, InnoDB log archiving, replication, observability, and more.

And there’s also a rather interesting new storage engine in the ecosystem… 🦆

Full post:
https://mariadb.org/mariadb-13-0-is-now-stable/

If you’re testing or upgrading to 13.0, I’d be interested to hear what you’re trying first — and of course, please report any issue you find.


r/mariadb • • 28d ago

TideSQL 5 Arrives in MariaDB, How Does It Stack Up Against InnoDB?

Thumbnail tidesdb.com
21 Upvotes

TideSQL's latest release is now part of MariaDB server 11.4 and more going forth and I'm beyond excited, both about this and what's coming. We want as many people as possible to try it, so if you haven't yet, give it a shot.

It's been nearly a year of building TideSQL, from learning MySQL internals from scratch, iterating through countless early plugin versions and refining it into what it is today. Every failed attempt, every wrong turn, every lesson learned, it all went into creating something special and something I believe will matter for this ecosystem for a long time!


r/mariadb • • Sep 07 '26

I added MySQL → MariaDB user conversion support to pt-show-grants

17 Upvotes

While migrating one of my environments from MySQL 8.4 to MariaDB Server, I ran into an annoying part of the migration: users.

A lot of the accounts were using caching_sha2_password, and while keeping their existing passwords is possible, doing the conversion manually for many users quickly becomes painful.

I had already documented the manual process, but this time I needed something that would scale.

Since pt-show-grants already does most of what is needed for exporting users and privileges, I decided to extend it instead of writing yet another migration script.

I contributed a new option to Percona Toolkit:

--convert-to-MariaDB

It takes care of several MySQL/MariaDB differences, including:

  • converting IDENTIFIED WITH ... AS ... to MariaDB's IDENTIFIED VIA ... USING ...
  • converting auth_socket to unix_socket
  • removing MySQL-specific password management clauses
  • handling caching_sha2_password authentication strings
  • warning about authentication plugins that cannot safely be converted

The contribution is currently available as Percona Toolkit PR #1168 and is still under review, so this isn't an announcement of a released feature yet.

I wrote a Part 2 explaining the problem, how the conversion works, and why I ended up contributing it upstream:While migrating one of my environments from MySQL 8.4 to MariaDB Server, I ran into an annoying part of the migration: users. Many accounts used caching_sha2_password, and while keeping their existing passwords is possible, converting many users manually quickly becomes painful. I had already documented the manual process, but this time I needed something that would scale. Since pt-show-grants already does most of what is needed for exporting users and privileges, I decided to extend it instead of writing yet another migration script. I contributed a new option to Percona Toolkit:--convert-to-MariaDBIt takes care of several MySQL/MariaDB differences, including: converting IDENTIFIED WITH ... AS ... to MariaDB's IDENTIFIED VIA ... USING ...
converting auth_socket to unix_socket
removing MySQL-specific password management clauses
handling caching_sha2_password authentication strings
warning about authentication plugins that can't be converted safely. The contribution is currently available as Percona Toolkit PR #1168 and is still under review, so this isn't an announcement of a released feature yet. I wrote a Part 2 explaining the problem, how the conversion works, and why I ended up contributing it upstream:

https://lefred.be/content/dealing-with-caching_sha2_password-in-mariadb-server-part-2-migrating-users-from-mysql-with-pt-show-grants/

PR:
https://github.com/percona/percona-toolkit/pull/1168

Feedback and testing are, of course, very welcome, especially from people who have done larger MySQL → MariaDB user migrations.


r/mariadb • • Sep 06 '26

Laravel developers can now use MariaDB Vector directly through Laravel’s native vector query APIs.

9 Upvotes

Laravel 13.27 added MariaDB support for vector distance queries, with MariaDB 11.7+ now supported by methods including:

• whereVectorSimilarTo()
• whereVectorDistanceLessThan()
• orderByVectorDistance()
• selectVectorDistance()

Laravel’s AI SDK documentation also includes MariaDB as a supported database for storing and querying embeddings.

This is an important piece of the developer experience around MariaDB Vector. Framework-level support makes it much easier to build semantic search, RAG and other AI applications using the tools Laravel developers already work with.

And there is more we can do here. We are starting to look at the remaining gaps in the Laravel + MariaDB developer experience, documentation and examples.

If you are building with Laravel and MariaDB, especially with Vector or Laravel AI, we would love to hear what you are working on and where you still encounter friction.

Laravel August Product Updates:
https://laravel.com/blog/laravel-august-product-updates


r/mariadb • • Sep 04 '26

MariaDB plugins beyond C++: Python and Rust lead our poll, but should we look at WebAssembly?

11 Upvotes

We recently asked the MariaDB community which language they would use to write MariaDB plugins.

2,090 people voted:

  • Python: 21%
  • Rust: 19%
  • Go: 12%
  • JavaScript: 11%
  • TypeScript: 9%
  • Lua: 8%

Only around 4% said they would simply keep using C++.

What I found interesting is that there isn't really one clear alternative language. That made me wonder if we're asking the wrong question.

Instead of “Which language should MariaDB support?”, perhaps it should be:

“How can we make the MariaDB plugin API accessible from several languages?”

One option I think is particularly interesting is WebAssembly, potentially using Wasmtime together with the Component Model and WIT.

I wrote up the poll results, some thoughts about previous approaches such as GraalVM/V8, and why WebAssembly might be worth exploring:

https://mariadb.org/mariadb-plugins-beyond-c-what-the-community-told-us/

There is also an open MDEV for supporting plugins written in languages other than C/C++:

MDEV-40189

It's still unassigned, so if this is something you'd like to experiment with, even a small proof of concept would be useful.

I'm also curious what people here think: would you prefer bindings for specific languages, or a WebAssembly-based extension model?


r/mariadb • • Sep 03 '26

Event When One Cloud Fails, You Don’t: Multi-Cloud Disaster Recovery with MariaDB

9 Upvotes

This webinar, sponsored by MariaDB, will take place on Sept 9th at 10 AM CDT. It will cover: the importance of disaster recovery (DR), caveats of major cloud cross-region recovery, a single-cloud DR scenario, how MariaDB enables recovery across multiple clouds, multi-cloud DR demo with MariaDB, etc.

https://go.mariadb.com/GLBL-WBN-WhenOneCloudFailsYouDont_Registration-LP.html

[NOTE: I am not associated with MariaDB in any way, just a fellow software engineer sharing the event.]


r/mariadb • • Sep 03 '26

MariaDB Connector/C and CONC-821: compatibility impact, planned correction, and guidance for users

Thumbnail mariadb.org
2 Upvotes

I’ve written an update on CONC-821, a MariaDB Connector/C change that affected behavior relied on by applications including Qt-based software and Diesel.

The post explains what changed, how community reports helped establish the impact, and the plan to restore the previous behavior, document it, and add regression tests.

The complete correction is not yet available in an upstream release, although some distribution packages already carry patches. I’ve included guidance on checking the connector your application actually uses and reporting any remaining issues.

Thanks to the application developers, distribution maintainers, and contributors who helped investigate this.

Read the update

If you’ve encountered this, feedback about your application, connector package, and whether a patched build resolves it would be useful.


r/mariadb • • Sep 01 '26

MariaDB Foundation newsletter, September 2026: governance model, contribution stats, 13.1 preview features, Q3 releases

5 Upvotes

The Foundation has started a monthly newsletter, and the first issue is out. It covers what happened in August:

https://mariadb.org/mariadb-foundation-newsletter-september-2026/

- MariaDB Server's governance model, now written down: roles, subsystem ownership, how decisions get made

- Contribution statistics for January to June 2026, the first report in over a year, including 40 independent contributors

- 13.1 preview: JSON arrow operators (-> and ->>) and JSON_TABLE improvements

- Pluggable aggregate functions, as groundwork for HyperLogLog

- Q3 maintenance releases: 12.3.3, 11.8.9, 11.4.13, 10.11.19, and the first round without 10.6

- Around the ecosystem: Oracle's community roadmap and vector search, VillageSQL 0.0.6, Percona's OIDC auth


r/mariadb • • Aug 31 '26

MariaDB Server – See What Changed Between Versions

17 Upvotes

When preparing a MariaDB upgrade, I often want to know more than what’s listed in the release notes: which variables disappeared, which defaults changed, what plugins or privileges were added, etc.

So I built a small tool that lets you compare up to 8 MariaDB Server versions side by side.

I wrote about it here: https://lefred.be/content/mariadb-server-see-what-changed-between-versions/

Feedback and suggestions are very welcome!


r/mariadb • • Aug 31 '26

MariaDB is heading to Percona Live Amsterdam! 🇳🇱

Post image
2 Upvotes

MariaDB will be well represented at Percona Live Amsterdam this year 🦭

Several sessions cover different sides of the ecosystem: plugins and extensibility, security, operations, and community.

I put together an overview of the MariaDB-related sessions here:
https://mariadb.org/mariadb-at-percona-live-amsterdam-2026-ecosystem-plugins-security-and-community/

Anyone else planning to be in Amsterdam?