Untuk mengumpulkan data pemantauan dari basis data MySQL ke Managed Service for Prometheus, Anda perlu membuat pengguna MySQL dan memberikan izin minimum kepada pengguna tersebut. Dalam topik ini, pengguna dengan ID mysqld_exporter dibuat.
Catatan Penggunaan
$danmysql>adalah karakter prompt. Jangan masukkan karakter prompt saat memasukkan perintah.#dan--adalah awalan anotasi. Jangan masukkan anotasi atau awalannya saat memasukkan perintah.
Prosedur
Basis data MySQL versi 8.0 dan yang lebih baru tidak mendukung penggunaan pernyataan GRANT untuk membuat pengguna baru. Pengguna harus dibuat dan diberi otorisasi secara terpisah. Dalam topik ini, Langkah 2 menjelaskan cara membuat pengguna dan Langkah 3 menjelaskan cara memberikan otorisasi kepada pengguna.
Jika Anda menggunakan basis data MySQL sebelum versi 8.0, Anda dapat membuat dan memberikan otorisasi kepada pengguna setelah masuk sebagai root user atau administrator. Untuk informasi lebih lanjut, lihat Langkah 3: Berikan Otorisasi kepada Pengguna.
Langkah 1: Masuk sebagai root user atau administrator
Mulai dan masuk ke basis data MySQL. Root user digunakan sebagai contoh.
$ mysql -u root -p
# Ganti "password" dengan kata sandi root user.
Enter password: passwordLangkah 2: Buat pengguna
Jalankan perintah berikut di baris perintah untuk membuat pengguna bernama
mysqld_exporter:mysql> CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'password';localhost: alamat IP host yang dapat dihubungkan. Gantilah dengan alamat IP aktual.Ganti
mysqld_exporterdanpassworddengan nama pengguna dan kata sandi kustom.
Verifikasi (opsional)
Jalankan perintah berikut di baris perintah. Jika informasi pengguna dan host ditemukan,
mysqld_exportertelah dibuat.-- Query informasi pengguna dari tabel mysql.user. mysql> SELECT User,Host FROM mysql.user WHERE User = 'mysqld_exporter'; -- Hasil +-----------------+-----------+ | User | Host | +-----------------+-----------+ | mysqld_exporter | localhost | +-----------------+-----------+
Langkah 3: Berikan otorisasi kepada pengguna
Jalankan perintah berikut di baris perintah untuk memberikan izin minimum kepada
mysqld_exporter:-- Berikan pengguna izin untuk mengakses semua tabel dan memeriksa informasi proses serta status basis data master dan slave. -- Jika Anda menggunakan pernyataan GRANT untuk membuat pengguna baru, kami sarankan Anda menambahkan [IDENTIFIED BY 'password'] di akhir perintah berikut untuk mengatur kata sandi. mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost'; -- Tambahkan izin baca pada tabel performance_schema.*. mysql> GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost'; -- Muat ulang tabel grant agar otorisasi berlaku. mysql> FLUSH PRIVILEGES;REPLICATION CLIENT: pernyataan yang memberikan izin kepada pengguna untuk memeriksa status basis data master dan slave.PROCESS: pernyataan yang memberikan izin kepada pengguna untuk memeriksa informasi proses.
Verifikasi (opsional)
Jalankan perintah berikut di baris perintah untuk memeriksa apakah pengguna telah diberikan izin yang diperlukan:
-- Lihat izin pengguna. mysql> SHOW GRANTS FOR 'mysqld_exporter'@'localhost'; -- Hasil +---------------------------------------------------------------------------+ | Grants for mysqld_exporter@localhost | +---------------------------------------------------------------------------+ | GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost' | | GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost' | +---------------------------------------------------------------------------+
FAQ
Operasi CREATE USER gagal untuk 'usernam'@'hostname'Kesalahan ini menunjukkan bahwa pembuatan pengguna gagal karena pengguna dengan nama yang sama sudah ada. Untuk menyelesaikan masalah ini, hapus pengguna yang ada lalu buat pengguna baru. Jalankan perintah berikut untuk menghapus pengguna:
mysql> DROP USER 'username'@'hostname';Akses ditolak untuk pengguna 'username'@'hostname'(menggunakan kata sandi: YA/TIDAK)Kesalahan ini menunjukkan bahwa server MySQL menolak permintaan koneksi karena nama pengguna atau kata sandi tidak valid. Untuk menyelesaikan masalah ini, periksa nama pengguna dan kata sandi, serta pastikan pengguna telah diberikan izin yang diperlukan.
Tidak dapat menemukan baris yang cocok di tabel penggunaKesalahan ini menunjukkan bahwa nama pengguna atau nama host tidak ada di tabel grant. Untuk menyelesaikan masalah ini, periksa kesalahan ejaan dan pastikan nama host valid. Jika Anda yakin ejaannya benar, gunakan perintah
FLUSH PRIVILEGESuntuk menyegarkan tabel grant.
Referensi
Untuk informasi tentang cara menggunakan Managed Service for Prometheus untuk mengumpulkan data pemantauan MySQL, lihat Gunakan Managed Service for Prometheus untuk Memantau Basis Data MySQL.