Iniciar el servidor MySQL es una de las tareas más básicas de administración, pero también una de las que más variantes presenta según el sistema operativo y el método de instalación. Dependiendo de si trabajas con Linux, macOS o Windows, y de si instalaste MySQL desde un paquete oficial, un repositorio del sistema o un contenedor Docker, el procedimiento cambia. En este artículo cubriremos las formas más habituales de poner en marcha el servidor y cómo verificar que el arranque fue exitoso.

Iniciar MySQL en Linux con systemd

La mayoría de las distribuciones Linux modernas (Ubuntu 20+, CentOS 7+, Debian 10+, RHEL 8+) utilizan systemd como sistema de gestión de servicios. Con systemd, iniciar MySQL es tan sencillo como ejecutar un comando:

sudo systemctl start mysqld

En distribuciones basadas en Debian (Ubuntu, Debian), el nombre del servicio suele ser mysql en lugar de mysqld:

sudo systemctl start mysql

Para verificar que el servicio se inició correctamente:

sudo systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled)
     Active: active (running) since Tue 2025-03-18 09:23:11 UTC; 5s ago
    Process: 3421 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
             (code=exited, status=0/SUCCESS)
   Main PID: 3467 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 4915)
     Memory: 412.8M
        CPU: 1.842s
     CGroup: /system.slice/mysql.service
             └─3467 /usr/sbin/mysqld

La línea Active: active (running) confirma que el servidor está funcionando. Si quieres que MySQL se inicie automáticamente cada vez que el servidor arranque, habilita el servicio:

sudo systemctl enable mysql
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service
 → /lib/systemd/system/mysql.service.

Iniciar MySQL con mysqld_safe

Antes de systemd, la forma estándar de iniciar MySQL era mediante el script mysqld_safe. Este script es un wrapper que inicia mysqld con protecciones adicionales: si el proceso se detiene inesperadamente, mysqld_safe lo reinicia automáticamente. También configura el logging y redirige errores al archivo de log.

sudo mysqld_safe --user=mysql &
[1] 4102
Logging to '/var/log/mysql/error.log'.
Starting mysqld daemon with databases from /var/lib/mysql

La opción --user=mysql es importante por seguridad: indica que el proceso debe ejecutarse bajo el usuario del sistema mysql, no como root. El ampersand (&) al final envía el proceso al fondo.

Aunque mysqld_safe sigue siendo funcional, en sistemas con systemd su uso directo es menos común. Sin embargo, conocerlo es útil cuando necesitas iniciar MySQL manualmente para depuración o en sistemas más antiguos.

Iniciar MySQL en Windows

En Windows, MySQL se instala típicamente como un servicio del sistema. Puedes gestionarlo desde la línea de comandos (cmd o PowerShell con permisos de administrador):

net start MySQL80
The MySQL80 service is starting.
The MySQL80 service was started successfully.

El nombre del servicio (MySQL80) puede variar según la versión. Para verificar el nombre exacto:

sc query type= service state= all | findstr /i mysql

También puedes iniciar MySQL desde el panel de Servicios de Windows. Presiona Win + R, escribe services.msc y busca el servicio de MySQL en la lista.

Si prefieres iniciar el servidor directamente desde la línea de comandos sin el servicio:

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --console

La opción --console muestra los mensajes de log directamente en la terminal en lugar de enviarlos a un archivo, lo cual es útil para depuración.

Iniciar MySQL en macOS

Si instalaste MySQL con Homebrew, el comando para iniciar es:

brew services start mysql
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)

Si usaste el instalador DMG oficial de Oracle, MySQL se gestiona desde las Preferencias del Sistema. También puedes usar la línea de comandos:

sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.. SUCCESS!

Verificar que el arranque fue exitoso

Independientemente del método de inicio, siempre debes verificar que MySQL está operativo. La forma más directa es intentar conectarte:

mysql -u root -p -e "SELECT 1 AS conexion_ok;"
+--------------+
| conexion_ok  |
+--------------+
|            1 |
+--------------+

Si la conexión funciona y recibes el resultado, el servidor está operativo. También puedes usar mysqladmin:

mysqladmin -u root -p ping
mysqld is alive

Para una verificación más completa que incluya el tiempo de actividad:

mysqladmin -u root -p status
Uptime: 47  Threads: 2  Questions: 5  Slow queries: 0
Opens: 120  Flush tables: 3  Open tables: 36
Queries per second avg: 0.106

Caso práctico: resolver errores comunes de arranque

El error más frecuente al iniciar MySQL es que el servidor ya esté en ejecución. Si intentas iniciar una segunda instancia, verás:

sudo systemctl start mysql
Job for mysql.service failed because the control process
exited with error code.

Al revisar el log de errores:

sudo tail -20 /var/log/mysql/error.log
[ERROR] [MY-010262] [Server] Can't start server:
  Bind on TCP/IP port: Address already in use
[ERROR] [MY-010257] [Server] Do you already have another
  mysqld server running on port: 3306 ?

La solución es verificar qué proceso está usando el puerto y detenerlo primero:

sudo ss -tlnp | grep 3306
LISTEN  0  151  *:3306  *:*  users:(("mysqld",pid=2847,fd=24))

Otro error habitual es la falta de permisos en el directorio de datos:

[ERROR] [MY-013131] [Server] Unable to access
  data directory '/var/lib/mysql/'

Esto se resuelve asegurando que el usuario mysql es el propietario:

sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 750 /var/lib/mysql

Caso práctico: primer arranque después de la instalación

Cuando instalas MySQL por primera vez, el primer arranque es especial porque el servidor necesita inicializar el directorio de datos. En instalaciones con mysqld --initialize, se genera una contraseña temporal para root que aparece en el log de errores:

sudo grep 'temporary password' /var/log/mysql/mysqld.log
[Note] [MY-010454] A temporary password is generated
  for root@localhost: Xk7#mP9qR2!w

Después del primer arranque, debes conectarte con esa contraseña temporal y cambiarla inmediatamente:

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NuevaContraseñaSegura_2025!';

En instalaciones de Debian/Ubuntu, el proceso es diferente: se configura la contraseña de root durante la instalación del paquete, o se usa el plugin auth_socket que permite la conexión como root sin contraseña cuando ejecutas mysql como usuario del sistema root.

Saber iniciar MySQL correctamente en tu entorno específico es fundamental. Pero igual de importante es saber detenerlo de forma segura, que es exactamente lo que veremos en el siguiente artículo.

Escrito por Eduardo Lázaro