Cómo reiniciar MySQL/MariaDB en Linux
¿Por qué necesitas reiniciar MySQL o MariaDB?
Si estás leyendo esto, probablemente tienes un problema con tu base de datos: una web que carga lento, un error de "conexión rechazada", o simplemente has cambiado un archivo de configuración y necesitas aplicar los cambios. Reiniciar MySQL o MariaDB es una de las tareas más comunes en administración de servidores Linux, pero también una de las que más dudas genera.
La buena noticia es que es un proceso muy sencillo, pero debes conocer el método correcto según tu sistema operativo. En este artículo te explico paso a paso cómo reiniciar mysql linux de forma segura, y también cómo reiniciar mariadb, con los comandos exactos para cada caso.
Antes de empezar: ¿MySQL o MariaDB?
Aunque son dos motores de bases de datos diferentes, en la práctica se comportan casi igual y se administran con los mismos comandos. MariaDB es un fork (derivado) de MySQL, creado por los desarrolladores originales de MySQL, y es el motor que viene por defecto en la mayoría de distribuciones Linux actuales como Ubuntu, Debian o CentOS.
Para saber cuál tienes instalado, ejecuta:
mysql --version
Si te devuelve algo como mysql Ver 15.1 Distrib 10.11.x-MariaDB, tienes MariaDB. Si ves mysql Ver 8.0.x for Linux, tienes MySQL. En cualquier caso, los comandos que te muestro a continuación funcionan para ambos.
Método 1: Reiniciar MySQL/MariaDB con systemctl (el más recomendado)
Este es el método moderno y el que deberías usar en el 99% de los casos. Todos los sistemas Linux actuales usan systemd como gestor de servicios, y el comando systemctl es la herramienta oficial para controlarlos.
Paso 1: Identificar el nombre exacto del servicio
Lo primero es saber cómo se llama tu servicio. En la mayoría de distribuciones será mysql o mariadb. Para comprobarlo:
systemctl list-units | grep -E "mysql|mariadb"
Verás algo como mysql.service o mariadb.service. Anota el nombre que aparezca.
Paso 2: Reiniciar el servicio
Ahora sí, para reiniciar mysql linux con systemctl:
sudo systemctl restart mysql
O si tienes MariaDB:
sudo systemctl restart mariadb
[TIP] Si el nombre del servicio no coincide, prueba con
sudo systemctl restart mysql.serviceosudo systemctl restart mariadb.service. El.servicees opcional, pero algunos sistemas lo requieren explícitamente.
Paso 3: Verificar que todo funciona
Después del reinicio, comprueba que el servicio está activo:
sudo systemctl status mysql
Deberías ver algo como Active: active (running). Si aparece failed, algo ha ido mal y necesitas revisar los logs (te explico cómo al final del artículo).
Método 2: Reiniciar MySQL/MariaDB con service (el clásico)
Algunos sistemas más antiguos o entornos de contenedores aún usan el comando service. Es igual de válido y funciona en la mayoría de distribuciones:
sudo service mysql restart
Para MariaDB:
sudo service mariadb restart
[INFO] La diferencia entre
systemctlyservicees que el primero interactúa directamente con systemd, mientras queservicees un script envoltorio que llama al método apropiado según el sistema. En la práctica, ambos hacen lo mismo.
Método 3: Reiniciar MySQL/MariaDB con mysqladmin (el más seguro)
Si tienes problemas con los métodos anteriores, o si quieres un reinicio más "limpio" que cierre las conexiones de forma ordenada, puedes usar mysqladmin. Este comando se comunica directamente con el servidor de base de datos:
sudo mysqladmin shutdown
sudo systemctl start mysql
Primero apagas el servidor de forma controlada y luego lo vuelves a arrancar. Este método es especialmente útil si tienes muchas conexiones activas y quieres evitar corromper datos.
[WARNING] El comando
mysqladmin shutdownrequiere que tengas configurada la contraseña de root de MySQL. Si no la tienes, puede que te pida autenticación. En ese caso, usasudo mysqladmin -u root -p shutdown.
¿Cuándo usar cada método?
- systemctl restart: Para reinicios rápidos y cotidianos. Es el método estándar.
- service restart: Compatible con sistemas antiguos, útil en servidores con configuraciones especiales.
- mysqladmin: Cuando necesitas un apagado "suave" o los otros métodos fallan.
Problemas comunes al reiniciar y cómo solucionarlos
El servicio no arranca después del reinicio
Esto suele pasar por errores de configuración o por problemas de permisos. Lo primero es revisar los logs:
sudo journalctl -u mysql -n 50
O para MariaDB:
sudo journalctl -u mariadb -n 50
Busca líneas con ERROR o FATAL. Los errores más comunes son:
- Permisos de archivos: Los directorios de datos deben pertenecer al usuario
mysql. Corrige consudo chown -R mysql:mysql /var/lib/mysql. - Puerto ocupado: Si otro proceso usa el puerto 3306, MySQL no podrá arrancar. Comprueba con
sudo netstat -tulpn | grep 3306. - Archivo de configuración roto: Revisa
/etc/mysql/my.cnfo/etc/mysql/mariadb.conf.d/por si hay errores de sintaxis.
El reinicio tarda demasiado
Esto suele indicar que hay conexiones colgadas o que el servidor está haciendo un flush de datos grande. Espera unos segundos más, pero si supera los 2 minutos, fuerza el reinicio:
sudo systemctl kill mysql
sudo systemctl start mysql
¿Cada cuánto tiempo debo reiniciar?
No hay una regla fija. MySQL y MariaDB están diseñados para funcionar durante mucho tiempo sin reiniciarse. Solo deberías reiniciar cuando:
- Cambias el archivo de configuración.
- Aplicas una actualización importante.
- Detectas fugas de memoria o problemas de rendimiento.
- Después de una caída del servidor.
[TIP] Si necesitas reiniciar MySQL muy a menudo, tienes un problema de fondo. Revisa la configuración de memoria, los logs y el tamaño de tus tablas.
Reiniciar MySQL/MariaDB en paneles de control
Syspanel (antes HestiaCP)
Si utilizas Syspanel (accesible en el puerto 2106), el panel de control que antes se llamaba HestiaCP, puedes reiniciar MySQL desde la interfaz web. Ve a "Servicios" > "MySQL" y haz clic en "Reiniciar". También puedes hacerlo desde la terminal con los comandos que ya te he mostrado, ya que Syspanel usa los servicios estándar del sistema.
cPanel o Plesk
Estos paneles tienen sus propios comandos, como sudo /scripts/restartsrv_mysql en cPanel. Sin embargo, los comandos de systemctl también funcionan.
Automatizar el reinicio de MySQL
Si necesitas reiniciar MySQL de forma periódica (algo que no recomiendo, pero que puede ser necesario en entornos de desarrollo), puedes crear un cron:
crontab -e
Y añadir la línea:
0 4 * * * sudo systemctl restart mysql
Esto reiniciaría MySQL todos los días a las 4 de la mañana.
[WARNING] No hagas esto en producción. Los reinicios periódicos innecesarios pueden causar problemas de rendimiento y pérdida de datos en tablas grandes.
Preguntas frecuentes (FAQ)
¿Es lo mismo reiniciar que recargar?
No. Reiniciar apaga y enciende el servicio por completo, cerrando todas las conexiones. Recargar solo relee los archivos de configuración sin interrumpir el servicio. Para recargar:
sudo systemctl reload mysql
¿Pierdo datos al reiniciar?
No, los datos están almacenados en disco. El reinicio solo cierra las conexiones activas y vuelve a abrir el servicio. Eso sí, si tienes transacciones en curso, pueden quedar incompletas.
¿Puedo reiniciar sin permisos de root?
No. Necesitas ser root o tener permisos de sudo. Si tu usuario no tiene sudo, contacta con tu administrador de sistemas.
¿Qué hago si no recuerdo la contraseña de root de MySQL?
Puedes reiniciar el servicio igualmente con sudo systemctl restart mysql. La contraseña solo la necesitas para conectarte a la base de datos, no para reiniciar el servicio.
¿Cómo sé si el reinicio ha ido bien?
Además de comprobar el estado con systemctl status, puedes intentar conectarte:
mysql -u root -p
Si te pide contraseña y te deja entrar, el servicio está funcionando correctamente.
Resumen rápido: comandos esenciales
Para que te quede claro, aquí tienes la chuleta definitiva:
| Acción | MySQL | MariaDB |
|---|---|---|
| Reiniciar | sudo systemctl restart mysql | sudo systemctl restart mariadb |
| Detener | sudo systemctl stop mysql | sudo systemctl stop mariadb |
| Iniciar | sudo systemctl start mysql | sudo systemctl start mariadb |
| Estado | sudo systemctl status mysql | sudo systemctl status mariadb |
| Recargar | sudo systemctl reload mysql | sudo systemctl reload mariadb |
Conclusión
Reiniciar MySQL o MariaDB en Linux es una tarea que dominarás después de leer este artículo. Los comandos son sencillos y siempre deberías usar systemctl restart como primera opción. Recuerda siempre verificar el estado después del reinicio y revisar los logs si algo falla.
Si tienes un servidor con Syspanel, recuerda que puedes gestionar el servicio desde el panel web en el puerto 2106, pero también tienes acceso a la terminal para usar los comandos que te he mostrado.
¿Tienes más dudas? Déjalas en los comentarios y te ayudaré a resolverlas. Y si este artículo te ha sido útil, compártelo con otros administradores que puedan necesitarlo. ¡Buena suerte con tus bases de datos!
