<?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/it/categories/mysql/</link><description>Recent content in Mysql on Ivan Luminaria</description><generator>Hugo</generator><language>it</language><lastBuildDate>Tue, 31 Mar 2026 08:03:00 +0100</lastBuildDate><atom:link href="https://ivanluminaria.com/it/categories/mysql/index.xml" rel="self" type="application/rss+xml"/><item><title>Binary log in MySQL: cosa sono, come gestirli e quando puoi cancellarli</title><link>https://ivanluminaria.com/it/posts/mysql/binary-log-mysql/</link><pubDate>Tue, 31 Mar 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/mysql/binary-log-mysql/</guid><description>&lt;p&gt;Il messaggio nel canale Slack del team infrastruttura era di quelli che fanno alzare la testa dallo schermo: &amp;ldquo;Disco al 95% sul db di produzione. Chi può guardare?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Il server era un MySQL 8.0 su Rocky Linux, un gestionale usato da un centinaio di utenti. Il database in sé occupava circa 40 GB — niente di straordinario. Ma nella directory dei dati c&amp;rsquo;erano 180 GB di binary log. Sei mesi di binlog che nessuno aveva mai pensato di gestire.&lt;/p&gt;</description></item><item><title>Galera Cluster a 3 nodi: come ho risolto un problema di disponibilità su MySQL</title><link>https://ivanluminaria.com/it/posts/mysql/galera-cluster-3-nodi/</link><pubDate>Tue, 17 Feb 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/mysql/galera-cluster-3-nodi/</guid><description>&lt;p&gt;Il ticket era laconico, come spesso accade quando il problema è grave: &amp;ldquo;Il database è andato giù di nuovo. L&amp;rsquo;applicazione è ferma. Terza volta in due mesi.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Il cliente aveva un MariaDB su un singolo server Linux — un&amp;rsquo;applicazione gestionale usata da circa duecento utenti interni, con picchi di carico durante le chiusure contabili di fine mese. Ogni volta che il server aveva un problema — un disco che rallentava, un aggiornamento di sistema che richiedeva un riavvio, un processo che consumava tutta la RAM — il database cadeva e con lui l&amp;rsquo;intera operatività aziendale.&lt;/p&gt;</description></item><item><title>Utenti MySQL: perché 'mario' e 'mario'@'localhost' non sono la stessa persona</title><link>https://ivanluminaria.com/it/posts/mysql/mysql-users-and-hosts/</link><pubDate>Tue, 13 Jan 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/mysql/mysql-users-and-hosts/</guid><description>&lt;p&gt;Qualche settimana fa un cliente mi chiama. Tono pragmatico, richiesta apparentemente banale:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Devo creare un utente su MySQL per un&amp;rsquo;applicazione che deve accedere a un database. Puoi occupartene?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Certo. &lt;code&gt;CREATE USER&lt;/code&gt;, &lt;span class="glossary-tip" tabindex="0" data-glossary-desc="Comando SQL per assegnare privilegi specifici a un utente o ruolo su database, tabelle o colonne. In MySQL 8 non crea più utenti implicitamente." data-glossary-url="https://ivanluminaria.com/it/glossary/grant/" data-glossary-more="Leggi di più →"&gt;`GRANT`&lt;/span&gt;
, avanti il prossimo.&lt;/p&gt;
&lt;p&gt;Solo che poi aggiunge: &amp;ldquo;L&amp;rsquo;applicazione gira su due server diversi. E a volte ci collegheremo anche da locale per manutenzione.&amp;rdquo;&lt;/p&gt;</description></item><item><title>MySQL multi-istanza: un ticket, un CSV e il muro di secure-file-priv</title><link>https://ivanluminaria.com/it/posts/mysql/mysql-multi-istanza-secure-file-priv/</link><pubDate>Tue, 04 Nov 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/mysql/mysql-multi-istanza-secure-file-priv/</guid><description>&lt;p&gt;Il ticket diceva: &amp;ldquo;Serve un export CSV dalla tabella ordini del gestionale. Entro le 14.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Erano le 11. Tre ore per una SELECT con INTO OUTFILE — roba da cinque minuti, pensavo. Poi ho aperto la VPN, mi sono collegato al server e ho capito che cinque minuti non sarebbero bastati.&lt;/p&gt;
&lt;p&gt;Il server era una macchina CentOS 7 con quattro istanze MySQL. Quattro. Sullo stesso host, con quattro servizi &lt;span class="glossary-tip" tabindex="0" data-glossary-desc="Sistema di init e gestore dei servizi su Linux, usato per gestire istanze multiple di MySQL/MariaDB sullo stesso server tramite unit file separati." data-glossary-url="https://ivanluminaria.com/it/glossary/systemd/" data-glossary-more="Leggi di più →"&gt;systemd&lt;/span&gt;
 diversi, quattro porte diverse, quattro socket Unix diverse, quattro directory dati diverse. Un setup che qualcuno aveva messo in piedi anni prima — probabilmente per risparmiare su un secondo server — e che da allora nessuno aveva più toccato né documentato.&lt;/p&gt;</description></item><item><title>Disco pieno su un cluster MySQL: binary log, Group Replication e la migrazione che non ammette errori</title><link>https://ivanluminaria.com/it/posts/mysql/mysql-group-replication-binlog-migration/</link><pubDate>Tue, 14 Oct 2025 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/it/posts/mysql/mysql-group-replication-binlog-migration/</guid><description>&lt;p&gt;La notifica è arrivata un lunedì mattina, in mezzo a tre riunioni e un caffè ancora caldo. &amp;ldquo;Filesystem /mysql all'85% sul nodo primario.&amp;rdquo; Su un altro nodo era al 66%, sul terzo al 25%. In un cluster, quando i numeri non tornano tra i nodi, c&amp;rsquo;è sempre qualcosa sotto.&lt;/p&gt;
&lt;p&gt;La prima domanda che ti viene in mente è &amp;ldquo;quanto spazio serve?&amp;rdquo;. Ma è la domanda sbagliata. Quella giusta è: &amp;ldquo;perché si sta riempiendo?&amp;rdquo;&lt;/p&gt;</description></item></channel></rss>