Let’s stay a bit longer with MySQL 3.2x to advance the MySQL Retrospective in anticipation of the 30th Anniversary. The idea of this article was suggested to me by Daniël van Eeden. Did you know that in the early days, and therefore still in MySQL 3.20, MySQL used the ISAM storage format? IBM introduced the […]
This blog is not intended to offer anything extraordinary; instead, consider it an anecdote, a lesson, or simply a proper way of doing things without the need to run a test when in doubt. That said, I must emphasize that, as always, testing everything before deploying to production is essential. Let’s dive into the story: […]
To further advance the MySQL Retrospective in anticipation of the 30th Anniversary, today, let’s discuss the very first version of MySQL that became availble to a wide audient though the popular InfoMagic distribution: MySQL 3.20! In 1997, InfoMagic incorporated MySQL 3.20 as part of the RedHat Contrib CD-ROM (MySQL 3.20.25). Additionally, version 3.20.13-beta was also […]
In this series, “MySQL with Diagrams,” I’ll use diagrams to explain internals, architectures, and structures as detailed as possible. In basic terms, here’s how replication works: the transactions are written into a binary log on the source side, carried into the replica, and applied. The replica’s connection metadata repository contains information that the replication receiver […]
So, as you’ve noticed, I’ve been playing around with MySQL Router v8.4.3 and read-write splitting, and now I’ve come across some issues that my environment has generated and I’ve opened some bugs against the fiend:
Bug 116950 – Router Read-Write splitting config causes PHP RSET_HEADER error
Bug 116951 – mysqlrouter Error parsing stats_updates_frequency errors
Bug 116952 – Router w/ RW split causes ERROR: 4501 if sql script contains comments lines (“– “)
(Yup, I prepared each bug description, repeatable tasks and suggested fix …
[Read more]This tutorial explores HeatWave GenAI, a cloud service that simplifies interacting with unstructured data using natural language. It combines large language models, vector stores, and SQL queries to enable tasks like content generation, chatbot, and retrieval-augmented generation (RAG). The focus is on RAG and how HeatWave GenAI’s architecture helps users gain insights from their data.
The post Simplifying AI Development: A Practical Guide to HeatWave GenAI’s RAG & Vector Store Features first appeared on dasini.net - Diary of a MySQL expert.
MySQL HeatWave, an Oracle Cloud service, delivers high-performance query processing, efficiently manages large data volumes, and combines transactional and analytical processing within the same system. This article highlights its key features and benefits.
The post MySQL HeatWave: Real-Time Analytics and High-Performance Data Processing appeared first on Devart Blog.
I’m just trying out the v8.4 Read-Write configuration for MySQL Router, that comes default in the community edition and, as they say, TL;DR “it’s default upon bootstrap”.
What does this mean and how can I go about it?
The overview is simple:
- Either install or upgrade your existing MySQL Router to v8.4 at least.
- Bootstrap the Router.
- Use the port 3310 or change it to fit your needs.
Let’s get to it:
Stop your running router:
systemctl stop mysqlrouter
Copy the old config, just in case:
cp /etc/mysqlrouter/mysqlrouter.conf /etc/mysqlrouter/mysqlrouter_v80.conf
I normally keep my mysql linux repository disabled so no “yum update” takes over version control and gives me a nasty surprise afterwards. As so, I uncomment the “mysql” entry:
vi /etc/yum.conf …
[Read more]
TL;DR ALTER TABLE and OPTIMIZE TABLE on an InnoDB table, which rebuilds the table without blocking concurrent changes to it (i.e., executed using INPLACE algorithm) and concurrent DML or purge activity on the table can occasionally lead to two significant problems: ALTER/OPTIMIZE TABLE failing with an unnecessary duplicate key error (even though there are no […]
MySQL 8.4 and newer have extended the Global Transaction ID (GTID) functionality with a new “tag” option.
Refresher on GTID
A GTID is a unique ID that is assigned to a transaction. This is
used if gtid_mode
is set to ON
. The
benefit of this is that a transaction can be uniquely identified
in a MySQL replication setup with multiple levels. Among others
this makes it easier to refactor a replication tree as a MySQL
replica knows which transactions it has seen and can use this to
find the right position to start replicating from a new source.
The format of GTIDs is documented here.
Before GTID was used replication worked based on a file and
offset
(e.g. file=binlog.000001
,offset=4
),
which is unique to every server.
A GTID without tag looks like …
[Read more]