Todos os produtos
Search
Central de documentação

Managed Service for Prometheus:Criar uma conta de acesso ao MySQL para o Prometheus

Última atualização: Aug 27, 2026

O Prometheus exige uma conta dedicada no MySQL com permissões mínimas de somente leitura para coletar dados de monitoramento. Este tópico descreve a configuração usando o mysqld_exporter como exemplo.

Observações sobre o exemplo

  • Os símbolos $ e mysql> são prompts de comando. Não os inclua ao executar comandos.

  • Os caracteres # e -- indicam comentários. Ignore esses prefixos e o texto dos comentários ao executar comandos.

Procedimento

Nota

O MySQL 8.0 e versões posteriores não permitem usar a instrução GRANT para criar usuários. Crie o usuário e conceda as permissões em etapas separadas. Por isso, este exemplo divide o processo em duas etapas: criação e autorização.

Se você utilizar uma versão anterior ao MySQL 8.0, crie a conta e conceda as permissões em uma única etapa. Para mais informações, consulte as operações e comentários em Step 3: Grant permissions.

Etapa 1: Fazer logon como usuário root ou administrador

Faça logon no MySQL como usuário root ou administrador. O exemplo a seguir usa o usuário root.

$ mysql -u root -p

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

Etapa 2: Criar uma conta

  1. Execute o comando a seguir para criar a conta mysqld_exporter.

    mysql> CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'password';
    • localhost: host com permissão de conexão. Substitua pelo endereço IP real.

    • mysqld_exporter e password são o nome de usuário e a senha personalizados. Altere-os conforme necessário.

  2. Opcional: Validação

    Execute o comando a seguir. Se a consulta retornar o usuário e o host correspondente, o usuário mysqld_exporter foi criado com êxito.

    -- 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 |
    +-----------------+-----------+

Etapa 3: Conceder permissões

  1. Execute os comandos a seguir para conceder as permissões mínimas necessárias à conta 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 a conta verifique o status de replicação entre servidores primários e secundários.

    • PROCESS: autoriza a visualização de informações de processos no MySQL.

  2. Verificar o resultado (opcional)

    Execute o comando a seguir para confirmar as permissões concedidas.

    -- 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'     |
    +---------------------------------------------------------------------------+

Perguntas frequentes

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

    Já existe um usuário com esse nome. Exclua o usuário existente antes de criar o novo:

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

    O servidor MySQL rejeitou a conexão porque o nome de usuário ou a senha está incorreto. Verifique as credenciais e confirme se o usuário tem as permissões adequadas.

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

    O nome de usuário ou hostname não existe nas tabelas de privilégios do MySQL. Verifique erros de digitação e valide o hostname. Se estiver tudo correto, execute FLUSH PRIVILEGES para atualizar as tabelas de privilégios.

Referências

Para mais informações, consulte How to use Prometheus to monitor MySQL.