All Products
Search
Document Center

Application Real-Time Monitoring Service:Buat akun akses MySQL untuk Prometheus

Last Updated:Aug 26, 2026

Prometheus memerlukan akun MySQL khusus dengan izin read-only minimal untuk mengumpulkan data pemantauan. Topik ini menjelaskan proses penyiapan menggunakan mysqld_exporter sebagai contoh.

Catatan contoh

  • $ dan mysql> adalah prompt perintah. Jangan sertakan prompt tersebut saat menjalankan perintah.

  • # dan -- adalah awalan komentar. Jangan sertakan awalan atau teks komentar tersebut saat menjalankan perintah.

Prosedur

Catatan

MySQL versi 8.0 dan yang lebih baru tidak mengizinkan Anda menggunakan pernyataan GRANT untuk membuat pengguna baru. Anda harus membuat pengguna dan memberikan izin dalam langkah terpisah. Oleh karena itu, contoh ini dibagi menjadi dua langkah: pembuatan dan otorisasi.

Jika Anda menggunakan versi MySQL sebelum 8.0, Anda dapat membuat akun dan memberikan izin dalam satu langkah. Untuk informasi selengkapnya, lihat operasi dan komentar di Langkah 3: Berikan izin.

Langkah 1: Masuk sebagai pengguna root atau administrator

Masuk ke MySQL sebagai pengguna root atau administrator. Contoh berikut menggunakan root.

$ mysql -u root -p

# Setelah prompt "Enter password", masukkan password untuk pengguna root.
Enter password: password

Langkah 2: Buat akun

  1. Jalankan perintah berikut untuk membuat akun mysqld_exporter.

    mysql> CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'password';
    • localhost: Host yang diizinkan untuk terhubung. Ganti nilai ini dengan alamat IP aktual.

    • mysqld_exporter dan password adalah username dan password kustom. Ganti sesuai kebutuhan.

  2. Opsi tambahan: Validasi

    Jalankan perintah berikut. Jika kueri mengembalikan pengguna dan host yang sesuai, pengguna mysqld_exporter telah berhasil dibuat.

    -- Kueri informasi pengguna dari tabel mysql.user.
    mysql> SELECT User,Host FROM mysql.user WHERE User = 'mysqld_exporter';
    
    -- Hasil kueri
    +-----------------+-----------+
    | User            | Host      |
    +-----------------+-----------+
    | mysqld_exporter | localhost |
    +-----------------+-----------+

Langkah 3: Berikan izin

  1. Jalankan perintah berikut untuk memberikan izin minimum yang diperlukan kepada akun mysqld_exporter.

    -- Berikan izin untuk memeriksa status server primary dan secondary serta melihat proses untuk semua tabel.
    -- Jika Anda menggunakan pernyataan GRANT untuk langsung membuat pengguna baru, tambahkan [IDENTIFIED BY 'password'] di akhir untuk menetapkan password pengguna.
    mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost';
    
    -- Berikan izin read pada tabel performance_schema.*.
    mysql> GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost';
    
    -- Muat ulang tabel grant agar izin baru diterapkan.
    mysql> FLUSH PRIVILEGES;
    • REPLICATION CLIENT: Mengizinkan akun memeriksa status replikasi server primary dan secondary.

    • PROCESS: Mengizinkan akun melihat informasi proses di MySQL.

  2. Verifikasi hasil (opsional)

    Jalankan perintah berikut untuk memverifikasi izin yang telah diberikan.

    -- Tampilkan izin yang dimiliki pengguna.
    mysql> SHOW GRANTS FOR 'mysqld_exporter'@'localhost';
    
    -- Hasil kueri
    +---------------------------------------------------------------------------+
    | Grants for mysqld_exporter@localhost                                      |
    +---------------------------------------------------------------------------+
    | GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost' |
    | GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost'     |
    +---------------------------------------------------------------------------+

FAQ

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

    Pengguna dengan nama yang sama sudah ada. Hapus pengguna yang ada terlebih dahulu, lalu buat yang baru:

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

    Server MySQL menolak koneksi karena username atau password salah. Verifikasi kredensial dan pastikan pengguna memiliki izin yang sesuai.

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

    Username atau hostname tidak ada di tabel grant MySQL. Periksa kesalahan penulisan dan verifikasi hostname. Jika penulisan sudah benar, jalankan FLUSH PRIVILEGES untuk merefresh tabel grant.

Referensi

Untuk informasi selengkapnya, lihat Cara menggunakan Prometheus untuk memantau MySQL.