Showing entries 1 to 10 of 42325
10 Older Entries »
MySQL 8.0.28 Release Note Commentary

 MySQL Server version  8.0.28 was launched a few days ago and without a lot a fanfare. Which is a shame and I wish we had more of a splash for every release.  The release notes are available here

I would like to highlight some of the changes.

There are over a hundred bug fixes and big thanks to Hope Lee, Casa Zhang, Øystein Grøvlen, Song Zhibai, Facebook, Hobert Lu, Brian Yue, Zhai Weixiang, Murakami Kohei,  Venkatesh Prasad Venugopal, and the Tencent team.

The Highlights

This release does not have a lot of 'wow' new features but shows a lot of solid work in evolving the product. 

  • The new audit_log_disable system variable …
[Read more]
Percona XtraBackup Changing to Strict by Default

Backups are a key part of a disaster recovery strategy, making sure you can continue or restore your business in case of an unwanted event with your data.

We always work on trying to improve Percona XtraBackup reliability, always favoring consistency, attempting to make unwanted outcomes be noticed as earlier as possible in the process.

Enabling –strict by Default

As of the upcoming release of 8.0.27, XtraBackup will no longer accept invalid parameters. Since the beginning of the times, validation of parameters has been a difficult task for XtraBackup as it mixes server-side and XtraBackup only parameters.

Starting at Percona XtraBackup 8.0.7 we implemented …

[Read more]
How to Upgrade MySQL on Ubuntu

In this tutorial, we’ll show you how to upgrade/update MySQL to a newer version. This tutorial was written and tested for Ubuntu. Recommended reading: How to install MySQL on Ubuntu Before we begin Before we begin with our actual tutorial, this is what you need (to know): As of writing, the latest MySQL release is […]


MySQL Performance Tuning: Top 10 Easy Tips

MySQL is a proven, reliable database that is quick to set up easy to maintain, and has outstanding performance. However, that performance can usually be improved with the judicious use of the following tips that are all easy to implement...

Fill in missing Date ranges using MySQL

I’m always trying different programming exercises in order to learn and grow as a Developer. One of my favorite learning exercises is porting over from one SQL dialect to another, as they all have their own individual features. Having to hack together or mirror non-existent functionality really challenges my thinking, therefore enabling growth and improvement in my query skills. In this post, I share reproducing the same query results using MySQL for queries I first learned of/discovered that were covered using Oracle SQL and specific implementation features…

Image by José Augusto …

[Read more]
Extending MySQL using the Component Infrastructure – part 10: status variables

Today we are already at the post number ten of the series of articles related to extending MySQL with the Component Infrastructure, the list above will be updated as new articles are published:

[Read more]
Crashing MySQL with Malicious Intent and a lot of Determination

A year ago, I blogged about An Unprivileged User can crash your MySQL Server.  At the time, I explained how to protect yourself against this problem.  A few weeks ago, I revisited this vulnerability in a follow-up post in which I explained the fix, claimed that the MySQL 5.7 default configuration for Group Replication is still problematic, and explained a tuning to avoid the vulnerability.  In

Announcing January 2022 Releases featuring MySQL 8.0.28

The MySQL January 2022 releases are now available.

Attack No-PK Replication Lag with MySQL/Percona Server 8 Invisible Columns!

The most common issue when using row-based replication (RBR) is replication lag due to the lack of Primary keys.

The problem is that any replicated DML will do a full table scan for each modified row on the replica. This bug report explains it more in-depth:

For example, if a delete is executed on the following table definition:

CREATE TABLE `joinit` (
  `i` int NOT NULL,
  `s` varchar(64) DEFAULT NULL,
  `t` time NOT NULL,
  `g` int NOT NULL


With this amount of rows:

mysql> select count(*) from joinit;
| count(*) |
|  1048576 |


The delete being:

mysql> flush status ;

mysql> delete from joinit where i > 5 and i < 150;
Query OK, 88 rows affected (0.04 sec) …
[Read more]
Extending MySQL using the Component Infrastructure – part 9: adding a new function

This post is the nine one of a series of articles on extending MySQL with the Component Infrastructure, the list above will be updated as new articles are published:

[Read more]
Showing entries 1 to 10 of 42325
10 Older Entries »