Todos los productos
Search
Centro de documentos

Managed Service for Prometheus:Crear una cuenta de acceso a MySQL para Prometheus

Última actualización: Sep 05, 2026

Prometheus requiere una cuenta dedicada de MySQL con permisos mínimos de solo lectura para recopilar datos de monitoreo. Este tema explica el proceso de configuración mediante el ejemplo de mysqld_exporter.

Notas sobre el ejemplo

  • $ y mysql> son símbolos del sistema. No incluya estos símbolos al ejecutar los comandos.

  • # y -- son prefijos de comentario. No incluya los prefijos ni el texto del comentario al ejecutar los comandos.

Procedimiento

Nota

MySQL 8.0 y versiones posteriores no permiten usar la instrucción GRANT para crear usuarios nuevos. Debe crear el usuario y otorgar los permisos en pasos separados. Por lo tanto, este ejemplo se divide en dos pasos: creación y autorización.

Si utiliza una versión de MySQL anterior a la 8.0, puede crear una cuenta y otorgarle permisos en un solo paso. Para obtener más información, consulte las operaciones y los comentarios en Step 3: Grant permissions.

Paso 1: Iniciar sesión como usuario root o administrador

Inicie sesión en MySQL como usuario root o como administrador. El siguiente ejemplo utiliza root.

$ mysql -u root -p

# After the "Enter password" prompt, enter the password for the root user.
Enter password: password

Paso 2: Crear una cuenta

  1. Ejecute el siguiente comando para crear la cuenta mysqld_exporter.

    mysql> CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'password';
    • localhost: El host autorizado para conectarse. Reemplace este valor por la dirección IP real.

    • mysqld_exporter y password son el nombre de usuario y la contraseña personalizados. Reemplácelos según sea necesario.

  2. Opcional: Validación

    Ejecute el siguiente comando. Si la consulta devuelve el usuario y el host correspondiente, significa que se creó el usuario mysqld_exporter.

    -- Query user information from the mysql.user table.
    mysql> SELECT User,Host FROM mysql.user WHERE User = 'mysqld_exporter';
    
    -- Query result
    +-----------------+-----------+
    | User            | Host      |
    +-----------------+-----------+
    | mysqld_exporter | localhost |
    +-----------------+-----------+

Paso 3: Otorgar permisos

  1. Ejecute los siguientes comandos para otorgar los permisos mínimos obligatorios a la cuenta mysqld_exporter.

    -- Grant permissions to check the status of primary and secondary servers and view processes for all tables.
    -- If you use the GRANT statement to directly create a new user, add [IDENTIFIED BY 'password'] at the end to set the user password.
    mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost';
    
    -- Grant the read permission on the performance_schema.* table.
    mysql> GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost';
    
    -- Reload the grant tables to apply the new permissions.
    mysql> FLUSH PRIVILEGES;
    • REPLICATION CLIENT: Permite que la cuenta compruebe el estado de replicación de los servidores primarios y secundarios.

    • PROCESS: Permite que la cuenta consulte la información de procesos en MySQL.

  2. Comprobar el resultado (opcional)

    Ejecute el siguiente comando para comprobar los permisos otorgados.

    -- View the permissions held by the user.
    mysql> SHOW GRANTS FOR 'mysqld_exporter'@'localhost';
    
    -- Query result
    +---------------------------------------------------------------------------+
    | Grants for mysqld_exporter@localhost                                      |
    +---------------------------------------------------------------------------+
    | GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost' |
    | GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost'     |
    +---------------------------------------------------------------------------+

Preguntas frecuentes

  • Operation CREATE USER failed for 'username'@'hostname'

    Ya existe un usuario con el mismo nombre. Elimine primero el usuario existente y luego cree el nuevo:

    mysql> DROP USER 'username'@'hostname';
  • Access denied for user 'username'@'hostname' (using password: YES/NO)

    El servidor MySQL rechazó la conexión porque el nombre de usuario o la contraseña son incorrectos. Compruebe las credenciales y asegúrese de que el usuario tenga los permisos adecuados.

  • Can't find any matching row in the user table

    El nombre de usuario o el nombre del host no existen en las tablas de privilegios de MySQL. Revise posibles errores ortográficos y verifique el nombre del host. Si la ortografía es correcta, ejecute FLUSH PRIVILEGES para actualizar las tablas de privilegios.

Referencias

Para obtener más información, consulte How to use Prometheus to monitor MySQL.