Tema 8 · MySQL & Puertos

Diagnóstico de Conflictos en el Puerto 3306 de MySQL/MariaDB

Aprende a diagnosticar y solucionar colisiones en el puerto 3306 cuando ya existe una instancia previa de MySQL Server o Workbench instalada en el sistema.

¿Por qué MySQL/MariaDB no Inicia en XAMPP?

El puerto estándar internacional para bases de datos MySQL y MariaDB es el 3306. Si al hacer clic en Start en el módulo MySQL el botón vuelve a su estado original o arroja error en el log, significa que otro programa ya está utilizando el puerto 3306.

Culpables Frecuentes del Puerto 3306 Ocupado:
  • MySQL Server independiente de Oracle: Instalado previamente mediante MySQL Installer o MySQL Workbench.
  • Otro entorno local simultáneo: Como WampServer, Laragon o Docker corriendo en segundo plano.
  • Servicio en segundo plano de Windows: Un servicio llamado MySQL o MySQL80 que arranca automáticamente con Windows.

Solución 1: Detener el Servicio MySQL Preexistente de Windows

  1. Presiona Win + R, escribe services.msc y pulsa Enter.
  2. Busca servicios cuyo nombre comience por MySQL (por ejemplo, MySQL80 o MySQL57).
  3. Haz clic derecho ➔ Detener (y cámbialo a Manual en Propiedades si no lo usas a diario).
  4. Regresa a XAMPP y pulsa Start en MySQL: ahora arrancará en verde en el puerto 3306.

Solución 2: Cambiar el Puerto de MySQL en XAMPP a 3307

Si deseas mantener ambos motores funcionando simultáneamente:

  • En el panel de XAMPP, haz clic en el botón Config junto a MySQL y abre my.ini.
  • Busca todas las apariciones de port=3306 (habitualmente en dos secciones: [client] y [mysqld]) y cámbialas por port=3307.
  • Guarda el archivo y pulsa Start.
  • Ajuste obligatorio en phpMyAdmin: Para que phpMyAdmin pueda conectar, abre C:\xampp\phpMyAdmin\config.inc.php y añade la línea:
    $cfg['Servers'][$i]['port'] = '3307';

⚡ Detectar qué Servicio Ocupa el Puerto 3306 en PowerShell

Comando de terminal para verificar qué proceso tiene tomado el puerto de base de datos:

detectar-puerto-mysql.ps1
Solo lectura
# Buscar el PID del proceso escuchando en el puerto 3306:
Get-NetTCPConnection -LocalPort 3306 -ErrorAction SilentlyContinue | 
  Select-Object LocalAddress, LocalPort, OwningProcess, State

# Consultar servicios de Windows relacionados con MySQL:
Get-Service -Name "*mysql*" | Select-Object Name, DisplayName, Status
🧠
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección
1 Pregunta
Pregunta 1
Si cambias el puerto de MariaDB/MySQL a 3307 en my.ini de XAMPP, ¿qué otro archivo debes configurar para que phpMyAdmin no arroje error de conexión?
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar Manual de XAMPP: Instalación & Pruebas y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.