You’ve made it this far in your MySQL adventure: your digital library boasts neat shelves (tables), well-behaved columns, and students—err, readers—lined up in orderly rows. You can create tables, insert new authors, update overdue fines, and remove that one book nobody wants to talk about. But what happens when you need to make several changes […]
The latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
In my first post on the MySQL 8.4 Audit Log Filter component, I covered how to install the component and configure a basic filter that captures all events. The Audit Log Filter framework offers a highly granular and configurable auditing mechanism, enabling administrators to log specific events based on criteria such as user, host, or event type. This selective approach enhances observability, supports compliance initiatives, and minimizes unnecessary logging overhead.
In this follow-up, we’ll take a deeper technical look at defining and optimizing audit log filters to capture only the most relevant database activities—delivering actionable audit data while significantly reducing noise and log volume.
Example 1
Audit all events:
Copy Copied!
SELECT audit_log_filter_set_filter('log_all_events', …[Read more]
Learn how to responsibly update or delete your MySQL data—including the concept of soft deletes—using engaging library metaphors and practical SQL examples. This post guides beginners through UPDATE and DELETE statements, safety tips, and real-world scenarios.
The audit log filter component in MySQL 8.4 provides administrators with a powerful mechanism for auditing database activity at a fine-grained level. While it offers significant flexibility—such as selectively logging events based on users, hosts, or event types—it can also be challenging to understand and configure correctly.
In this article, we will examine how the audit log filter component works, walk through its core concepts, and share practical tips for configuring and managing audit filters effectively. Our goal is to help you leverage this feature to improve observability, meet compliance requirements, and reduce unnecessary logging overhead.
Enabling Audit Log Filter
We will be using Percona Server 8.4.4 or higher in the examples below. First, we need to enable the audit log filter component. To install the audit log filter component, we need to run the following command:
Copy Copied!
…[Read more]MySQL Analysis: With an AI-Powered CLI Tool
As DBAs with MySQL we often live on a Linux terminal window. We also enjoy free options when available. This post shows an approach that allows us to stay on our terminal window and still use an AI-powered tool. You can update to use other direct AI providers but I set this example up to use aimlapi.com as it brings multiple AI models to your terminal for free with limited use or very low cost for more testing.
Note: I'm not a paid spokesperson for AIMLAPI or anything - this is just an easy example to highlight the idea.
The Problem
You're looking at a legacy database with hundreds of tables, each with complex relationships and questionable design decisions made years ago. The usual process involves:
- Manual schema inspection
- Cross-referencing documentation (if it exists)
- Running multiple EXPLAIN queries …
Codership is pleased to announce a new Generally Available (GA) release of the multi-master Galera Cluster for MySQL 8.0, consisting of MySQL-wsrep 8.0.42-26.23 (release notes, download), with Galera replication library 4.23 (release notes, download) implementing wsrep API version 26. It also includes Galera Cluster for MySQL 8.4, consisting of MySQL-wsrep 8.4.5-26.23 (release notes, …
[Read more]
Semantic Search with SQL Simplicity and Operational
Control
Introduction
Vector search is redefining how we work with unstructured and semantic data. Until recently, integrating it into traditional relational databases like MySQL required external services, extra infrastructure, or awkward workarounds. That changes with the MyVector plugin — a native vector indexing and search extension purpose-built for MySQL.
Whether you’re enhancing search for user-generated content, improving recommendation systems, or building AI-driven assistants, MyVector makes it possible to store, index, and search vector embeddings directly inside MySQL — with full support for SQL syntax, indexing, and filtering.
What Is MyVector?
The MyVector plugin adds native support …
[Read more]We are delighted to invite you to celebrate 30 years of MySQL at upcoming MySQL meetups and events. Above the celebration we also would like to give a technical update on the latest advancements in MySQL. Your presence will make this celebrations memorable! MySQL Meetups: EMEA: JAPAC: External (3rd party) Events with MySQL, HeatWave & […]
The latest update to MySQL Enterprise Edition, version 9.3, introduces a significant enhancement focused on improving primary selection on failover. This update includes an improvement to Group Replication primary failover, providing users with a better selection method of a new primary based on the member's most current data. This enhancement results in a seamless experience during failover, maintaining high availability and data integrity.
In this blog, I am going to explain the complete process involved in the MySQL group replication setup using SSL. The blog covers the complete MySQL config files as well as steps. I used the following aspects for my testing purpose.
- MySQL 9.3.0 Inn ovation release
- Ubuntu 24.10
- 3 physical servers
I also enabled the hostname based authentications between the three VMs. So that, I don’t need to provide the IPs explicitly each time. To achieve this, I used to update the the file “/etc/hosts” with following entries.
root@gr1:~# cat /etc/hosts | grep gr
198.19.249.194 gr1 gr1
198.19.249.116 gr2 gr2
198.19.249.163 gr3 gr3
---- Test
root@gr1:~# telnet gr2 3306
Trying 198.19.249.116...
Connected to gr2.
---- Works!
Creating SSL certificates:
As I am going to setting up the SSL based group replication, I need to create the required certificates …
[Read more]