<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Debian 12 - Matteo Cisilino</title>
	<atom:link href="https://www.cisilino.com/es/tag/debian-12-es/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cisilino.com/es/</link>
	<description>Guide su WordPress, server e sicurezza</description>
	<lastBuildDate>Thu, 29 Oct 2026 19:02:48 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>MySQL no arranca tras actualizar a Debian 12: causa y solución</title>
		<link>https://www.cisilino.com/es/2026/10/13/mysql-no-arranca-debian-12/</link>
					<comments>https://www.cisilino.com/es/2026/10/13/mysql-no-arranca-debian-12/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Tue, 13 Oct 2026 07:50:06 +0000</pubDate>
				<category><![CDATA[Servidores y bases de datos]]></category>
		<category><![CDATA[actualización]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=263</guid>

					<description><![CDATA[<p>Tras actualizar a Debian 12 MySQL no arranca y en los logs aparece mariadb.conf.d. Cómo reconocer la causa y resolverlo sin tocar los datos.</p>
<p>The post <a href="https://www.cisilino.com/es/2026/10/13/mysql-no-arranca-debian-12/">MySQL no arranca tras actualizar a Debian 12: causa y solución</a> first appeared on <a href="https://www.cisilino.com/es/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">El síntoma: MySQL no arranca y mysql.service queda en failed</h2>
<p>Tras actualizar a Debian 12, MySQL no arranca. El servicio figura como fallido y el log muestra el error <code>Can't read dir of '/etc/mysql/mariadb.conf.d/'</code>.</p>
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/mysql-no-arranca-debian-12.webp" alt="MySQL no arranca: un cilindro que representa una base de datos con un círculo naranja de aviso al lado" width="1200" height="630"/></figure>
<pre class="wp-block-code"><code># service mysql status
× mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: failed (Result: exit-code)
     Status: "Server startup in progress"

mysqld: Can't read dir of '/etc/mysql/mariadb.conf.d/' (OS errno 2 - No such file or directory)
mysqld: &#91;ERROR] Stopped processing the 'includedir' directive in file /etc/mysql/my.cnf at line 29.
mysqld: &#91;ERROR] Fatal error in defaults handling. Program aborted!
systemd&#91;1]: Failed to start mysql.service - MySQL Community Server.</code></pre>
<p>Al comprobar los paquetes instalados, MySQL está presente con normalidad (paquetes <code>mysql-community-server</code> 8.0 del repositorio oficial de Oracle).</p>
<pre class="wp-block-code"><code>dpkg -l | grep mysql</code></pre>
<h2 class="wp-block-heading">La causa: la alternativa my.cnf apunta a mariadb.cnf</h2>
<p>En Debian el archivo <code>/etc/mysql/my.cnf</code> no es un archivo real. Es un enlace gestionado por <strong>update-alternatives</strong>. Varios paquetes pueden registrar su propia versión y, en modo automático, gana la que tiene la prioridad más alta.</p>
<p>Durante la actualización se instaló (y luego se eliminó) el paquete <strong>mariadb-common</strong>. Registra <code>/etc/mysql/mariadb.cnf</code> con <strong>prioridad 500</strong>, más alta que <code>/etc/mysql/mysql.cnf</code> (prioridad 300). El paquete se eliminó pero no se purgó del todo (estado <code>rc</code>), así que su configuración siguió activa. En la línea 29 de ese archivo hay la inclusión de <code>/etc/mysql/mariadb.conf.d/</code>, un directorio que no existe. MySQL lee la configuración, no encuentra el directorio y se detiene.</p>
<p><strong>Buena noticia:</strong> los datos en <code>/var/lib/mysql</code> no se han tocado. Es solo un problema de configuración.</p>
<h2 class="wp-block-heading">Diagnóstico: comprobar adónde apunta my.cnf</h2>
<pre class="wp-block-code"><code>ls -l /etc/mysql/my.cnf /etc/alternatives/my.cnf
update-alternatives --display my.cnf
sed -n '25,32p' /etc/mysql/my.cnf
dpkg -l | grep -i mariadb</code></pre>
<p>Si el problema es este, la salida será parecida a la siguiente.</p>
<pre class="wp-block-code"><code>/etc/alternatives/my.cnf -&gt; /etc/mysql/mariadb.cnf
/etc/mysql/my.cnf -&gt; /etc/alternatives/my.cnf

my.cnf - modalità automatica
  la versione migliore del collegamento è /etc/mysql/mariadb.cnf
  il collegamento attualmente punta a /etc/mysql/mariadb.cnf
/etc/mysql/mariadb.cnf - priorità 500
/etc/mysql/my.cnf.fallback - priorità 100
/etc/mysql/mysql.cnf - priorità 300

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

rc  mariadb-common   1:10.11.18-0+deb12u1   all   MariaDB common configuration files</code></pre>
<h2 class="wp-block-heading">Solución paso a paso</h2>
<h3 class="wp-block-heading">1. Hacer una copia de seguridad de la configuración</h3>
<pre class="wp-block-code"><code>cp -a /etc/mysql /root/etc-mysql-backup-$(date +%F)</code></pre>
<h3 class="wp-block-heading">2. Eliminar los restos de mariadb-common</h3>
<p>El purge elimina <code>mariadb.cnf</code> y su entrada en update-alternatives.</p>
<pre class="wp-block-code"><code>apt purge mariadb-common</code></pre>
<h3 class="wp-block-heading">3. Volver a apuntar my.cnf a mysql.cnf</h3>
<pre class="wp-block-code"><code>update-alternatives --remove my.cnf /etc/mysql/mariadb.cnf 2&gt;/dev/null
update-alternatives --set my.cnf /etc/mysql/mysql.cnf</code></pre>
<h3 class="wp-block-heading">4. Comprobar la configuración</h3>
<pre class="wp-block-code"><code>update-alternatives --display my.cnf
cat /etc/mysql/my.cnf
my_print_defaults mysqld</code></pre>
<p>Ahora <code>my.cnf</code> debe apuntar a <code>/etc/mysql/mysql.cnf</code> e incluir <code>/etc/mysql/conf.d/</code> y <code>/etc/mysql/mysql.conf.d/</code>. Si <code>my_print_defaults mysqld</code> muestra los parámetros sin errores, la configuración es correcta.</p>
<h3 class="wp-block-heading">5. Arrancar MySQL</h3>
<pre class="wp-block-code"><code>systemctl start mysql
systemctl status mysql
journalctl -u mysql -n 50 --no-pager</code></pre>
<h2 class="wp-block-heading">Si my.cnf no es un enlace simbólico</h2>
<p>Si <code>/etc/mysql/my.cnf</code> es un archivo normal o <code>/etc/mysql/mysql.cnf</code> no existe, se puede recrear la configuración a mano.</p>
<pre class="wp-block-code"><code>mv /etc/mysql/my.cnf /etc/mysql/my.cnf.mariadb.bak
cat &gt; /etc/mysql/my.cnf &lt;&lt;'EOF'
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
EOF
mkdir -p /etc/mysql/conf.d
systemctl start mysql</code></pre>
<h2 class="wp-block-heading">Solución rápida provisional</h2>
<p>Si MySQL no arranca y hace falta volver a poner la base de datos en línea enseguida, basta con crear la carpeta que falta. Pero es solo un parche: MySQL seguiría leyendo la configuración pensada para MariaDB. Conviene aplicar la solución completa cuanto antes.</p>
<pre class="wp-block-code"><code>mkdir /etc/mysql/mariadb.conf.d &amp;&amp; systemctl start mysql</code></pre>
<h2 class="wp-block-heading">Cómo evitar que vuelva a ocurrir</h2>
<p>Conviene averiguar qué actualización instaló MariaDB, consultando el historial de apt.</p>
<pre class="wp-block-code"><code>grep -i -B3 -A3 mariadb /var/log/apt/history.log*</code></pre>
<p>Para impedir que <code>mariadb-common</code> se reinstale en el futuro se puede bloquear con un pin de APT de prioridad negativa.</p>
<pre class="wp-block-code"><code>cat &gt; /etc/apt/preferences.d/no-mariadb &lt;&lt;'EOF'
Package: mariadb-*
Pin: release *
Pin-Priority: -1
EOF</code></pre>
<p>Después de cada actualización importante es buena costumbre comprobar también el estado de la alternativa con <code>update-alternatives --display my.cnf</code>. Las <a href="https://www.debian.org/releases/bookworm/amd64/release-notes/" target="_blank" rel="noopener">notas de la versión de Debian 12</a> recogen los cambios de la actualización.</p>
<p>Si necesitas una versión antigua de MySQL en el mismo servidor, mira cómo aislar <a href="https://www.cisilino.com/es/2026/10/17/mysql-5-7-docker-nftables-proteccion/">MySQL 5.7 en Docker con nftables</a>.</p>
<h2 class="wp-block-heading">Preguntas frecuentes</h2>
<h3 class="wp-block-heading">¿Pierdo los datos si MySQL no arranca?</h3>
<p>No. El problema afecta solo a los archivos de configuración en <code>/etc/mysql</code>; los datos en <code>/var/lib/mysql</code> permanecen intactos.</p>
<h3 class="wp-block-heading">¿Por qué eligió Debian mariadb.cnf?</h3>
<p>Porque la alternativa <code>my.cnf</code> estaba en modo automático y <code>mariadb.cnf</code> tiene prioridad 500, más alta que los 300 de <code>mysql.cnf</code>. Con <code>update-alternatives --set</code> la elección pasa a ser manual y ya no cambia sola.</p>
<h3 class="wp-block-heading">¿Vale también para Ubuntu?</h3>
<p>Sí, el mecanismo de <code>update-alternatives</code> para <code>my.cnf</code> es el mismo en Ubuntu y en las demás distribuciones derivadas de Debian.</p>
<h2 class="wp-block-heading">Conclusión</h2>
<p>El error <strong>«Can&#8217;t read dir of /etc/mysql/mariadb.conf.d/»</strong> tras una actualización de Debian no indica un daño en MySQL. Es una configuración residual de MariaDB que ha quedado activa mediante update-alternatives. Al eliminar <code>mariadb-common</code> con <code>apt purge</code> y volver a poner <code>my.cnf</code> en <code>mysql.cnf</code>, MySQL vuelve a funcionar con normalidad.</p></p><p>The post <a href="https://www.cisilino.com/es/2026/10/13/mysql-no-arranca-debian-12/">MySQL no arranca tras actualizar a Debian 12: causa y solución</a> first appeared on <a href="https://www.cisilino.com/es/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/es/2026/10/13/mysql-no-arranca-debian-12/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
