<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mysql on Ivan Luminaria</title><link>https://ivanluminaria.com/en/categories/mysql/</link><description>Recent content in Mysql on Ivan Luminaria</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 31 Mar 2026 08:03:00 +0100</lastBuildDate><atom:link href="https://ivanluminaria.com/en/categories/mysql/index.xml" rel="self" type="application/rss+xml"/><item><title>Binary logs in MySQL: what they are, how to manage them, and when you can delete them</title><link>https://ivanluminaria.com/en/posts/mysql/binary-log-mysql/</link><pubDate>Tue, 31 Mar 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/mysql/binary-log-mysql/</guid><description>&lt;p&gt;The message in the infrastructure team&amp;rsquo;s Slack channel was the kind that makes you look up from your screen: &amp;ldquo;Disk at 95% on the production db. Anyone able to look?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The server was a MySQL 8.0 on Rocky Linux, a business management system used by about a hundred users. The database itself was around 40 GB — nothing extraordinary. But in the data directory there were 180 GB of binary logs. Six months&amp;rsquo; worth of binlogs that nobody had ever thought to manage.&lt;/p&gt;</description></item><item><title>Galera Cluster with 3 nodes: how I solved a MySQL availability problem</title><link>https://ivanluminaria.com/en/posts/mysql/galera-cluster-3-nodi/</link><pubDate>Tue, 17 Feb 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/mysql/galera-cluster-3-nodi/</guid><description>&lt;p&gt;The ticket was laconic, as it often is when the problem is serious: &amp;ldquo;The database went down again. The application is stopped. Third time in two months.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The client had a MariaDB on a single Linux server — a business management application used by about two hundred internal users, with load spikes during end-of-month accounting closures. Every time the server had a problem — a disk slowing down, a system update requiring a reboot, a process consuming all the RAM — the database crashed and with it the entire business operations.&lt;/p&gt;</description></item><item><title>MySQL Users: Why 'mario' and 'mario'@'localhost' Are Not the Same Person</title><link>https://ivanluminaria.com/en/posts/mysql/mysql-users-and-hosts/</link><pubDate>Tue, 13 Jan 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/mysql/mysql-users-and-hosts/</guid><description>&lt;p&gt;A few weeks ago a client calls me. Pragmatic tone, seemingly trivial request:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I need to create a user on MySQL for an application that needs to access a database. Can you take care of it?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sure. &lt;code&gt;CREATE USER&lt;/code&gt;, &lt;span class="glossary-tip" tabindex="0" data-glossary-desc="SQL command to assign specific privileges to a user or role on databases, tables or columns. In MySQL 8 it no longer creates users implicitly." data-glossary-url="https://ivanluminaria.com/en/glossary/grant/" data-glossary-more="Read more →"&gt;`GRANT`&lt;/span&gt;
, next.&lt;/p&gt;</description></item><item><title>MySQL Multi-Instance: A Ticket, a CSV and the secure-file-priv Wall</title><link>https://ivanluminaria.com/en/posts/mysql/mysql-multi-istanza-secure-file-priv/</link><pubDate>Tue, 04 Nov 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/mysql/mysql-multi-istanza-secure-file-priv/</guid><description>&lt;p&gt;The ticket said: &amp;ldquo;We need a CSV export from the orders table in the ERP database. By 2 PM.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It was 11 AM. Three hours for a SELECT with INTO OUTFILE — a five-minute job, I thought. Then I opened the VPN, connected to the server and realized five minutes were not going to cut it.&lt;/p&gt;
&lt;p&gt;The server was a CentOS 7 box running four MySQL instances. Four. On the same host, with four different &lt;span class="glossary-tip" tabindex="0" data-glossary-desc="Linux init system and service manager, used to manage multiple MySQL/MariaDB instances on the same server through separate unit files." data-glossary-url="https://ivanluminaria.com/en/glossary/systemd/" data-glossary-more="Read more →"&gt;systemd&lt;/span&gt;
 services, four different ports, four different Unix sockets, four different data directories. A setup someone had put together years earlier — probably to save on a second server — and that no one had touched or documented since.&lt;/p&gt;</description></item><item><title>Full disk on a MySQL cluster: binary logs, Group Replication, and a migration that leaves no room for mistakes</title><link>https://ivanluminaria.com/en/posts/mysql/mysql-group-replication-binlog-migration/</link><pubDate>Tue, 14 Oct 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/mysql/mysql-group-replication-binlog-migration/</guid><description>&lt;p&gt;The alert came on a Monday morning, wedged between three meetings and a coffee that was still hot. &amp;ldquo;Filesystem /mysql at 85% on the primary node.&amp;rdquo; On another node it was 66%, on the third 25%. In a cluster, when the numbers don&amp;rsquo;t match across nodes, there&amp;rsquo;s always something going on underneath.&lt;/p&gt;
&lt;p&gt;The first question that comes to mind is &amp;ldquo;how much space do we need?&amp;rdquo; But that&amp;rsquo;s the wrong question. The right one is: &amp;ldquo;why is it filling up?&amp;rdquo;&lt;/p&gt;</description></item></channel></rss>