Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 131 to 140 of 45381 « Previous | Next »
Incremental backups in Percona Kubernetes Operator for MySQL

Starting with version 1.1.0, the Percona Kubernetes Operator for MySQL now supports incremental backups. This feature lets you backup only the changed data since the last backup, instead of copying your entire dataset each time. The result is dramatically smaller backup sizes, faster backup windows, and lower cloud storage costs.

In this post, we’ll walk through how the feature works under the hood, how to configure it, and what to keep in mind when designing your backup strategy.

How Incremental Backups Work in Percona XtraBackup

The foundation of this feature is Percona XtraBackup (PXB), an open source backup tool for MySQL. PXB has supported incremental backups for a while, and the operator now brings that capability into the backup workflow.

Every InnoDB data page carries a Log Sequence Number …

[Read more]
Introducing MySQL GTID Support and Zero-Downtime Failover in Readyset

One of the most requested features since Readyset first supported MySQL has been GTID-based replication. With the latest release, Readyset now fully supports MySQL Global Transaction Identifiers (GTIDs), and with it, a capability that changes how you think about cache durability: zero-downtime failover.

This post covers what GTID support means for Readyset users, how failover works in practice, and why this matters for anyone running Readyset in production.

The Problem with Binlog File and Position

MySQL's binary log is the backbone of replication and Change Data Capture. Every tool that reads the binlog like replicas, CDC pipelines, Readyset, needs to track where it left off so it can resume after a restart or disconnection.

Historically, that position was tracked as a file name and offset: binlog.000003:154. This works, but it has a fundamental limitation: binlog file names and …

[Read more]
Monitoring MySQL data locks, or the tip of the iceberg

Monitoring MySQL data locks, or the tip of the iceberg This story is about recent (*) performance improvements implemented in MySQL, related to monitoring of data locks. (*) Originally written in Feb 2025. Refresher What is a data lock? When a user session connects to the MySQL database, it executes SQL queries. The query runs; […]

Replication Internals: Decoding the MySQL Binary Log - Part 8: Row Events — WRITE_ROWS, UPDATE_ROWS, and DELETE_ROWS

In this eighth post of our series, we decode the three row events — WRITE_ROWS_EVENT, UPDATE_ROWS_EVENT, and DELETE_ROWS_EVENT — that carry the actual row data for INSERT, UPDATE, and DELETE operations in row-based replication.

Introduction

In the previous posts, we decoded the events that set the stage for row-based replication: the GTID_LOG_EVENT identifies the transaction, the QUERY_EVENT opens it with BEGIN, and the TABLE_MAP_EVENT describes the table's schema. Now we finally arrive at the events that carry the actual data — the row events.

All three row events share the same base structure defined by the Rows_event class. The differences come down to which row images each event carries: …

[Read more]
Multi-Region MySQL on Kubernetes: Architecture Patterns for Global Scale

A deep dive into multi-region MySQL deployment patterns on Kubernetes, exploring replication models, failover strategies, and the operational trade-offs required to achieve global scale and resilience.

Symlinks are Unsafe since MySQL 8.0.39 (and maybe even before)

You read this right, symbolic links (symlinks) are unsafe in MySQL since at least 8.0.39.  As always, it is a little more complicated than that, but if you are using symbolic links and in certain conditions, you risk a crash.  I think it is important to raise awareness on this, hence this post.

My attention was brought to this via the now private Bug #120156: MySQL 8.0.39/8.0.42

Auditing Login Attempts in MySQL and MariaDB

My colleague Miguel wrote about ways to audit login attempts in MySQL over 13 years ago, and this is still a relevant subject. I decided to refresh this topic to include some important changes since then.

Very often, it is important to track login attempts to our databases due to security reasons as well as to catch application misconfigurations. I’ll focus here on the most convenient ways to log authentication attempts. While auditing all client connections is usually pointless on busy production systems, when even thousands of new client sessions may be authenticating per second, let’s concentrate especially on the failed ones.

The Error Log

All MySQL and MariaDB variants have an easy way of logging failed authentication attempts in the standard error log via elevated log verbosity. To enable it, in older MySQL versions up …

[Read more]
Join the Public MySQL Community Discussion Webinar (Edition #3)

Following the strong participation in the first two editions of our Public MySQL Community Discussion webinar series, we’re excited to invite you to Edition #3. These sessions are part of our ongoing commitment to increase transparency, strengthen collaboration, and make it easier for the community to provide input that helps shape the evolution of MySQL’s. […]

50 SQL Interview Questions and Answers (2026 Advanced Edition)

We understand that tackling SQL interviews can feel challenging, but with the right focus, you can master the required knowledge. Structured specifically for the 2026 job market, this comprehensive resource provides 50 real, frequently asked SQL interview questions covering everything from basic definitions and data manipulation to advanced analytical queries and performance optimisation. Section 1: SQL […]

Celebrating 30 Years of MySQL: Free Training & Certification Results 

In 2025, MySQL celebrated its 30th anniversary—and to mark the milestone, Oracle University (together with the MySQL Community team) offered free MySQL training and free certification exams from April 20 through July 31, 2025.  The goal was simple: make it easy for developers, DBAs, architects, and newcomers to build practical skills and validate them with […]