Post actualizado el día octubre 29, 2026 by DeiviSanzPlay
Cuando alguien intenta XAMPP instalar Drupal entorno local por primera vez, el error que aparece una y otra vez no es de Drupal ni de PHP: es MySQL negándose a arrancar porque el puerto 3306 ya está ocupado. XAMPP muestra el módulo MySQL en verde un segundo, luego parpadea y se apaga sin decir demasiado. Se pierden horas reinstalando XAMPP, cambiando la versión de Drupal o culpando al hosting local, cuando el problema real es otro servicio escuchando en el mismo puerto.
Me pasó con un Drupal 10 recién descargado en un portátil con MariaDB del sistema instalado de un proyecto anterior. XAMPP arrancaba Apache sin queja, pero MySQL moría en silencio. El instalador de Drupal llegaba a la pantalla de configuración de base de datos y devolvía un error de conexión genérico que no menciona el puerto en ningún momento.
Por qué el puerto 3306 arruina la instalación de Drupal en XAMPP
XAMPP trae su propio MySQL/MariaDB, pero no comprueba si otro servidor de bases de datos ya está corriendo en el equipo. En Windows es habitual tener MySQL instalado como servicio del sistema; en macOS, un MariaDB de Homebrew; en Linux, el paquete mysql-server de la distribución. Cualquiera de ellos ocupa el 3306 y bloquea el de XAMPP.
El síntoma típico: el panel de XAMPP dice que MySQL está iniciado, pero al intentar conectar desde phpMyAdmin o desde el instalador de Drupal, la conexión se rechaza o se queda colgada. En los logs de XAMPP (mysql_error.log) aparece algo como «Do you already have another mysqld server running on port: 3306?». Ese mensaje es la pista que casi nadie lee.
Cómo confirmarlo antes de tocar nada
Antes de reinstalar, abre una terminal y comprueba qué proceso escucha en el puerto. En Windows: netstat -ano | findstr :3306. En macOS o Linux: lsof -i :3306 o ss -tulpn | grep 3306. Si aparece un PID distinto al de mysqld de XAMPP, ahí está el culpable.
También puedes abrir el panel de XAMPP, pulsar «Config» junto a MySQL y revisar my.ini (Windows) o my.cnf (macOS/Linux). Ahí se ve el puerto configurado. Si es 3306 y hay otro servicio, hay conflicto.
Tres salidas posibles y cuál elegir
La primera opción es detener el MySQL del sistema antes de arrancar XAMPP. En Windows: net stop mysql o deshabilitarlo en services.msc. En macOS: brew services stop mariadb. Es lo más limpio si no necesitas ese servidor mientras trabajas en Drupal.
La segunda es cambiar el puerto de MySQL en XAMPP a 3307 (o el que esté libre) editando my.ini y reiniciando. Ojo: después tendrás que indicar ese puerto en la configuración de Drupal, tanto en la pantalla del instalador como en settings.php. Si no lo haces, Drupal seguirá buscando 3306 y fallará igual.
La tercera, la que yo recomiendo para proyectos serios, es no mezclar: usar una máquina virtual o Docker para el entorno local y dejar XAMPP para pruebas rápidas. XAMPP instalar Drupal entorno funciona bien cuando el equipo está limpio, pero se vuelve frágil si convive con otros stacks.
Lo que este enfoque no resuelve
Cambiar el puerto no arregla problemas de extensiones PHP. Drupal 10 exige extensiones como pdo_mysql, gd, mbstring y opcache; XAMPP las trae casi todas activas, pero no todas. Si tras resolver el puerto aparece un error de «missing extension», revisa php.ini y habilita las que falten.
Tampoco resuelve el rendimiento. XAMPP en Windows con Drupal y cachés activas va lento en comparación con un entorno Linux nativo o con contenedores. Para desarrollo real, muchos equipos migran a DDEV o Lando después de la primera semana. XAMPP instalar Drupal entorno sirve para aprender, no para producción.
Una comprobación que casi nadie hace
Antes de lanzar el instalador de Drupal, crea la base de datos a mano desde phpMyAdmin con cotejamiento utf8mb4_general_ci. Drupal puede crearla, pero si el usuario root de XAMPP no tiene permisos suficientes o el puerto está mal, el error se confunde con un fallo de credenciales. Tener la base creada de antemano separa los problemas y ahorra tiempo.
El error del puerto 3306 no es el único al instalar Drupal en XAMPP, pero sí el más frecuente y el que más confunde porque el mensaje que devuelve Drupal no lo menciona. Revisar el log de MySQL antes de reinstalar cualquier cosa es el hábito que separa una instalación de diez minutos de una tarde perdida.
Perfiles verificables: Sitio web
Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.