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: Jul 05, 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 símbolos # e -- são prefixos de comentário. Não inclua os prefixos nem o texto do comentário 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 permissões em etapas separadas. Por isso, este exemplo divide-se em duas etapas: criação e autorização.

Se você utilizar uma versão do MySQL anterior à 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 na seção Etapa 3: Conceder permissões.

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. Substitua-os conforme necessário.

  2. Opcional: Validação

    Execute o comando a seguir. Se a consulta retornar o usuário e o host correspondente, a conta mysqld_exporter foi criada.

    -- 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 dos servidores primário e secundário.

    • PROCESS: permite visualizar 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 o mesmo nome. Exclua o usuário existente e crie 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á incorreta. Verifique as credenciais e certifique-se de que 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 se há erros de digitação e confirme o hostname. Se a grafia estiver correta, execute FLUSH PRIVILEGES para atualizar as tabelas de privilégios.

Referências

Para mais informações, consulte Como usar o Prometheus para monitorar o MySQL.