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

Cómo reiniciar MySQL/MariaDB desde la terminal en Linux

Actualizado el 1 de octubre de 2025

¿Por qué necesitas reiniciar MySQL o MariaDB?

Si estás administrando un servidor Linux, es muy probable que en algún momento necesites reiniciar tu base de datos. Las razones más comunes suelen ser: aplicar cambios de configuración en el archivo my.cnf, solucionar errores de conexión, liberar memoria o simplemente porque el servicio se ha quedado colgado tras un pico de tráfico.

Tanto MySQL como MariaDB (su fork open-source más popular) se gestionan de forma casi idéntica en la terminal. Dominar estos comandos te convertirá en un sysadmin mucho más eficiente. No te preocupes si eres principiante: aquí te lo explicamos paso a paso, con ejemplos claros y sin tecnicismos innecesarios.


Antes de empezar: identifica tu sistema de init

El primer paso para reiniciar MySQL o MariaDB es saber qué sistema de gestión de servicios usa tu distribución de Linux. Esto es crucial porque el comando cambia según uses systemd (el estándar moderno) o SysVinit (el clásico).

¿Cómo saberlo?

Escribe este comando en tu terminal:

ps -p 1 -o comm=
  • Si la salida muestra systemd, estás en un sistema moderno (Ubuntu 16.04+, CentOS 7+, Debian 8+).
  • Si muestra init o upstart, usas el sistema antiguo.

[INFO] La gran mayoría de distribuciones actuales usan systemd. Si tu servidor es antiguo, los comandos con service o /etc/init.d/ seguirán funcionando.


Método 1: Reiniciar con systemd (el más común)

Este es el método recomendado para la mayoría de los casos. Los comandos son intuitivos y fáciles de recordar.

Pasos para reiniciar MySQL

Abre tu terminal y ejecuta:

sudo systemctl restart mysql

Para MariaDB, el comando es:

sudo systemctl restart mariadb

[TIP] ¿No recuerdas si tienes MySQL o MariaDB? Ejecuta systemctl list-units | grep -E 'mysql|mariadb' y verás cuál está activo.

Otros comandos útiles de systemd

Además de reiniciar, es probable que necesites estas variantes:

  • Ver el estado del servicio (¿está activo? ¿tiene errores?):

    sudo systemctl status mysql
    
  • Detener el servicio (por si necesitas hacer un mantenimiento):

    sudo systemctl stop mysql
    
  • Arrancar el servicio (cuando esté detenido):

    sudo systemctl start mysql
    
  • Recargar configuración sin cortar conexiones (muy útil si solo cambiaste variables en my.cnf):

    sudo systemctl reload mysql
    

[WARNING] La diferencia entre restart y reload es importante: restart detiene y arranca el servicio (corta conexiones brevemente), mientras que reload aplica cambios de configuración sin interrumpir el servicio. Si tu base de datos está en producción, prioriza reload siempre que sea posible.


Método 2: Usar el comando service (compatible con todo)

Este método funciona en casi cualquier distribución, incluso en sistemas sin systemd. Es el comodín de los sysadmins.

Para MySQL:

sudo service mysql restart

Para MariaDB:

sudo service mariadb restart

Las variantes de status, stop y start también funcionan:

sudo service mysql status
sudo service mysql stop
sudo service mysql start

[TIP] Si tu sistema usa SysVinit, también puedes usar la ruta directa:

sudo /etc/init.d/mysql restart

Método 3: Reiniciar usando mysqladmin (desde dentro de la base de datos)

Esta opción es menos conocida pero muy útil si tienes acceso a la consola de MySQL y no quieres usar permisos de root del sistema. Aquí reinicias la base de datos desde dentro.

Paso 1: Accede con el usuario root de MySQL

mysql -u root -p

Te pedirá la contraseña. Una vez dentro, ejecuta:

SHUTDOWN;

Esto detiene el servicio de forma controlada. Luego, fuera de la consola, arranca de nuevo con:

sudo systemctl start mysql

Paso 2 (alternativa directa): Usa mysqladmin

Si prefieres hacerlo de una sola vez, usa este comando:

sudo mysqladmin -u root -p shutdown

Después, inicia el servicio como vimos antes.

[WARNING] Este método es más "quirúrgico" pero puede dejar la base de datos inconsistente si hay transacciones en curso. Úsalo solo si sabes lo que haces o si el servicio está bloqueado.


Solución de problemas comunes al reiniciar

A veces, el reinicio falla. Aquí tienes las situaciones más típicas y cómo resolverlas.

Error: "Failed to restart mysql.service: Unit not found"

Esto significa que el servicio no se llama mysql. Prueba con mariadb o busca el nombre exacto:

systemctl list-units | grep -i -E 'sql|maria'

Error: "Permission denied"

Necesitas permisos de superusuario. Añade sudo al inicio del comando. Si estás en un sistema con su, cambia a root primero:

su -

El servicio se reinicia pero no arranca después

Esto suele deberse a un error en el archivo de configuración my.cnf. Para diagnosticarlo:

sudo systemctl status mysql -l

Busca las últimas líneas del log. Un error típico es una ruta mal escrita o un parámetro inválido. También puedes revisar el log de errores directamente:

sudo tail -f /var/log/mysql/error.log

Comandos avanzados para sysadmins

Si ya te sientes cómodo con lo básico, aquí tienes algunas opciones que te harán la vida más fácil.

Reiniciar y ver el resultado al instante

sudo systemctl restart mysql && sudo systemctl status mysql

El && hace que el segundo comando solo se ejecute si el primero tuvo éxito. Así ves el estado final sin escribir dos comandos.

Usar journalctl para ver el historial del servicio

sudo journalctl -u mysql --since "10 minutes ago"

Esto te muestra todos los logs del servicio de los últimos 10 minutos. Ideal para saber si el reinicio fue limpio o hubo warnings.

Configurar el reinicio automático (para servicios críticos)

Puedes hacer que MySQL se reinicie solo si se cae:

sudo systemctl enable mysql
sudo systemctl enable --now mysql

El segundo comando lo habilita y lo arranca inmediatamente.


¿Y si usas un panel de control como Syspanel?

Si tu servidor tiene instalado un panel de administración web como Syspanel (antes conocido como HestiaCP), tienes una ventaja: puedes reiniciar MySQL o MariaDB desde su interfaz gráfica.

Pasos en Syspanel:

  1. Accede a tu panel a través de https://tu-servidor:2106 (recuerda, el puerto es el 2106).
  2. Inicia sesión con tu usuario y contraseña de administrador.
  3. Ve a la sección "Servicios" o "Base de datos".
  4. Busca el servicio de MySQL/MariaDB y haz clic en "Reiniciar".

[INFO] Syspanel es un panel de control open-source muy completo que incluye gestión de bases de datos, dominios y correos. El puerto de acceso es el 2106. Si tienes este panel, la mayoría de tareas de administración se simplifican enormemente, aunque siempre es bueno saber los comandos de terminal por si acaso.


Buenas prácticas antes de reiniciar

Reiniciar una base de datos no es algo que deba tomarse a la ligera. Sigue estas recomendaciones:

  • Haz un backup antes de reiniciar, especialmente si tienes datos críticos. Un simple mysqldump te salvará de un susto:

    mysqldump -u root -p --all-databases > backup.sql
    
  • Avisa a los usuarios si es un servidor de producción. Un reinicio corta las conexiones activas y puede causar errores en aplicaciones web.

  • Programa los reinicios en ventanas de bajo tráfico. Si usas cron, puedes hacerlo a las 3:00 AM, por ejemplo.

  • Comprueba el estado después del reinicio con systemctl status o revisando que puedas conectarte:

    mysqladmin -u root -p ping
    

    Deberías ver la respuesta mysqld is alive.


Preguntas frecuentes (FAQ)

¿Es lo mismo reiniciar MySQL que MariaDB?

No exactamente. Son dos motores de base de datos distintos, aunque MariaDB es compatible con MySQL. Los comandos son casi idénticos, solo cambia el nombre del servicio (mysql vs mariadb). Si tienes MariaDB instalado, usa mariadb en los comandos.

¿Cuánto tarda un reinicio?

Normalmente, menos de 5 segundos en servidores pequeños. En bases de datos grandes con muchas tablas InnoDB, puede tardar más porque necesita verificar los archivos de registro.

¿Puedo reiniciar sin cortar el servicio?

Si necesitas aplicar cambios de configuración sin interrupciones, usa reload en lugar de restart. Esto recarga las variables dinámicas del servidor sin detener el proceso.

¿Qué hago si el reinicio falla y no tengo acceso al panel?

Si no puedes reiniciar ni con systemctl ni con service, prueba a matar el proceso manualmente:

sudo pkill -9 mysqld

Luego, arranca el servicio de nuevo. Esto es un último recurso, ya que puede causar corrupción de datos si hay transacciones en curso.

¿Syspanel me permite reiniciar desde el móvil?

Sí, Syspanel tiene una interfaz responsive que funciona bien en navegadores móviles. Accede al puerto 2106 desde tu móvil y podrás gestionar los servicios sin problemas.


Conclusión

Reiniciar MySQL o MariaDB desde la terminal en Linux es una tarea sencilla una vez que conoces los comandos correctos. Tanto systemctl como service son tus aliados, y con las variantes de status, stop y start tendrás el control total sobre tu base de datos.

Recuerda que la práctica hace al maestro. Te recomiendo probar estos comandos en un entorno de desarrollo antes de aplicarlos en producción. Y si usas Syspanel (recuerda, puerto 2106), tendrás una capa extra de comodidad para gestionar todo desde el navegador.

Si te ha quedado alguna duda, déjala en los comentarios. ¡Feliz administración de servidores!

¿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