🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo reiniciar MySQL si tu web da error 'Too many connections'

Actualizado el 15 de noviembre de 2025

¿Qué significa el error "Too many connections" en MySQL?

Cuando tu página web muestra el error "Too many connections", lo que está ocurriendo es que el servidor de MySQL ha alcanzado su límite máximo de conexiones simultáneas permitidas. Imagina que MySQL es un restaurante con un número limitado de mesas: si llegan más clientes (consultas) de los que puede atender a la vez, los nuevos clientes deben esperar fuera o, en este caso, reciben un error.

Este problema es especialmente común en sitios web con mucho tráfico, en aplicaciones que no cierran correctamente las conexiones a la base de datos, o después de un ataque de fuerza bruta. La buena noticia es que reiniciar MySQL suele resolver el problema de forma temporal, y hay soluciones más permanentes que te explicaré a lo largo de esta guía.


¿Por qué ocurre este error y qué significa realmente?

El límite de conexiones está definido por un parámetro llamado max_connections. En configuraciones estándar de hosting, este valor suele estar entre 100 y 150 conexiones. Cada vez que tu web (o cualquier script PHP) necesita leer o escribir datos, abre una conexión a MySQL. Si tienes plugins de caché mal configurados, consultas lentas o un pico de visitas, es muy fácil superar ese límite.

[INFO] Este error no significa que tu base de datos esté dañada ni que hayas perdido información. Es simplemente un atasco temporal de conexiones.


Preparación antes de reiniciar MySQL

Antes de lanzarte a reiniciar, es importante que verifiques algunas cosas. Reiniciar MySQL cerrará todas las conexiones activas, lo que significa que cualquier operación en curso se interrumpirá. Esto puede afectar a usuarios que estén realizando compras o enviando formularios en ese preciso momento.

1. Verifica el estado actual de las conexiones

Si tienes acceso a la terminal de tu servidor, ejecuta:

mysql -u root -p -e "SHOW STATUS LIKE 'Threads_connected';"

Esto te mostrará cuántas conexiones hay activas en ese momento. También puedes ver quién está conectado:

mysql -u root -p -e "SHOW PROCESSLIST;"

2. Identifica si es un ataque o un problema real

Si ves muchas conexiones desde la misma IP o con estados como Sleep durante mucho tiempo, podrías estar ante un ataque o un script mal optimizado. En ese caso, reiniciar solo dará un alivio momentáneo.


Cómo reiniciar MySQL según tu panel de control

La forma de reiniciar MySQL varía según el panel de hosting que uses. A continuación te explico los casos más comunes: cPanel, DirectAdmin y Plesk. También incluyo Syspanel (anteriormente HestiaCP), que cada vez gana más popularidad.

Reiniciar MySQL en cPanel

cPanel es uno de los paneles más utilizados en hosting compartido. Para reiniciar MySQL:

  1. Accede a WHM (Web Host Manager) con tu cuenta de administrador. Normalmente se accede a través de https://tu-dominio.com:2087.
  2. En el menú de la izquierda, busca la sección "SQL Services" o "Servicios SQL".
  3. Haz clic en "Restart MySQL" o "Reiniciar MySQL".
  4. Confirma la acción en la ventana emergente.

[TIP] Si solo tienes acceso a cPanel (no a WHM), no podrás reiniciar MySQL directamente. En ese caso, contacta con tu proveedor de hosting o intenta usar la opción de "Restart MySQL" dentro de la sección de bases de datos si tu proveedor la ha habilitado.

Reiniciar MySQL en DirectAdmin

DirectAdmin también ofrece una forma sencilla de reiniciar el servicio:

  1. Accede a DirectAdmin como administrador (puerto 2222 por defecto).
  2. Ve a "System Info & Files" y luego a "Process Manager".
  3. Busca el proceso mysqld o mysql.
  4. Haz clic derecho sobre él y selecciona "Restart".
  5. Confirma la acción.

Otra opción más directa es usar el comando desde la terminal:

systemctl restart mysql

[WARNING] En DirectAdmin, si usas systemctl, asegúrate de que el servicio se llama exactamente mysql o mysqld. Puedes verificarlo con systemctl list-units | grep mysql.

Reiniciar MySQL en Plesk

Plesk tiene una interfaz muy amigable. Sigue estos pasos:

  1. Inicia sesión en Plesk como administrador.
  2. Ve a "Herramientas y configuración" (Tools & Settings).
  3. Busca la sección "Servicios" o "Services Management".
  4. Localiza el servicio "MySQL Server".
  5. Haz clic en el botón de reiniciar (icono de flechas circulares).

También puedes usar la terminal:

systemctl restart mariadb

[INFO] En Plesk, es muy común que MySQL esté gestionado por MariaDB. Ambos son compatibles, así que si ves mariadb en lugar de mysql, es normal.

Reiniciar MySQL en Syspanel (HestiaCP)

Si utilizas Syspanel (antes conocido como HestiaCP), el proceso es igualmente sencillo. Recuerda que el acceso a este panel se realiza a través del puerto 2106.

  1. Abre tu navegador y accede a https://tu-dominio.com:2106.
  2. Inicia sesión con tu usuario administrador.
  3. En el menú lateral, busca "Server" o "Servidor".
  4. Dentro de esa sección, verás una pestaña llamada "Services" o "Servicios".
  5. Localiza "MySQL" en la lista y haz clic en el botón "Restart".

[TIP] Syspanel es conocido por su ligereza y facilidad de uso. Si tienes problemas con el panel, siempre puedes reiniciar el servicio desde la terminal con systemctl restart mysql.


Cómo reiniciar MySQL desde la terminal (método universal)

Si tienes acceso SSH a tu servidor, este es el método más rápido y universal. Funciona en la mayoría de distribuciones Linux.

Paso 1: Conéctate por SSH

ssh usuario@tu-servidor.com

Paso 2: Identifica el gestor de servicios

Dependiendo de tu sistema, usarás systemctl (en sistemas modernos con systemd) o service (en sistemas más antiguos).

Paso 3: Reinicia MySQL

Para sistemas con systemd (Ubuntu 16.04+, CentOS 7+):

sudo systemctl restart mysql

Si el servicio se llama de otra forma, prueba:

sudo systemctl restart mysqld

O si usas MariaDB:

sudo systemctl restart mariadb

Para sistemas con service (más antiguos):

sudo service mysql restart

[WARNING] Si no tienes permisos de superusuario, antepone sudo o contacta con tu proveedor de hosting. En hosting compartido, normalmente no tendrás acceso SSH.


¿Qué hacer si el error persiste después de reiniciar?

Reiniciar MySQL es como apagar y encender un electrodoméstico: soluciona el problema temporalmente, pero si la causa raíz persiste, el error volverá. Aquí tienes soluciones más profundas.

Aumentar el límite de conexiones

Puedes aumentar el valor de max_connections temporalmente sin reiniciar:

SET GLOBAL max_connections = 300;

Para hacerlo permanente, edita el archivo de configuración de MySQL (normalmente en /etc/my.cnf o /etc/mysql/my.cnf) y añade:

[mysqld]
max_connections = 300

Luego reinicia MySQL para aplicar los cambios.

[TIP] No subas este valor desmesuradamente. Cada conexión consume memoria RAM. Un valor de 300-500 es razonable para la mayoría de servidores con 4-8 GB de RAM.

Optimizar consultas y cerrar conexiones

El error too many connections solucion definitiva pasa por optimizar tu aplicación:

  • Usa un pool de conexiones en aplicaciones PHP (como PDO con persistencia).
  • Cierra conexiones explícitamente con mysql_close() o equivalentes.
  • Revisa consultas lentas con el log de MySQL.
  • Implementa caché para reducir las consultas a la base de datos.

Identificar y bloquear IPs maliciosas

Si sospechas de un ataque, puedes usar herramientas como fail2ban para bloquear IPs sospechosas automáticamente. También puedes ver las conexiones activas con:

mysql -u root -p -e "SHOW PROCESSLIST;" | grep "Sleep"

Y matar procesos zombies con:

KILL id_proceso;

Preguntas frecuentes (FAQ)

¿Reiniciar MySQL borra mis datos?

No. Reiniciar el servicio simplemente detiene y arranca el proceso. Tus bases de datos, tablas y registros permanecen intactos. Es seguro hacerlo.

¿Cuánto tiempo tarda en reiniciar MySQL?

Normalmente entre 5 y 15 segundos. Durante ese tiempo, tu web mostrará un error de conexión a la base de datos, así que es recomendable hacerlo en horas de bajo tráfico.

¿Puedo reiniciar MySQL desde cPanel sin WHM?

Si tu plan de hosting es compartido, no. Necesitarás contactar con el soporte de tu proveedor. En planes VPS o dedicados, siempre tendrás acceso a WHM o SSH.

¿Qué diferencia hay entre MySQL y MariaDB?

MariaDB es un fork de MySQL, totalmente compatible. Si tu servidor usa MariaDB, los comandos de reinicio son los mismos, solo cambia el nombre del servicio (mariadb en lugar de mysql).

¿El error "Too many connections" es un ataque?

No siempre. Puede ser un pico de tráfico legítimo, un plugin mal configurado o un script que no cierra conexiones. Sin embargo, si notas patrones extraños, investiga con SHOW PROCESSLIST.


Consejos finales para evitar el error en el futuro

  • Monitoriza tu servidor con herramientas como htop o paneles como Netdata.
  • Configura alertas para cuando el número de conexiones supere el 80% del límite.
  • Programa tareas de limpieza para cerrar conexiones inactivas.
  • Actualiza tu CMS y plugins regularmente para evitar fallos de optimización.

[INFO] Si tu web tiene mucho tráfico, considera migrar a un plan VPS o dedicado donde tengas más control sobre los parámetros de MySQL.


Resumen rápido

  1. Error "Too many connections" = se alcanzó el límite de conexiones simultáneas.
  2. Reiniciar MySQL es la solución rápida: funciona en cPanel, DirectAdmin, Plesk y Syspanel (puerto 2106).
  3. Si el error persiste, aumenta max_connections y optimiza tu código.
  4. La prevención es clave: monitoriza, cierra conexiones y usa caché.

Espero que esta guía te haya sido de ayuda. Recuerda que, ante la duda, siempre puedes contactar con tu proveedor de hosting: tienen herramientas y experiencia para resolver este tipo de incidencias rápidamente. ¡Tu web volverá a estar operativa en minutos!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel