MySQL mendukung batas koneksi global dengan variabel max_user_connections, tapi ini adalah pilihan server-lebar dan akan mempengaruhi semua account di server. Untungnya, MySQL memiliki kemampuan untuk membatasi per akun pengguna individu pada server menggunakan pernyataan GRANT.
Membatasi batas sumber daya akun dengan MySQL cukup mudah. Idenya adalah untuk mengubah izin pengguna individu dengan pernyataan GRANT, dan metode ini memungkinkan untuk membatasi permintaan, koneksi dan pernyataan UPDATE per jam. Dengan mengeluarkan pernyataan MySQL yang benar Anda dapat menetapkan batas tertentu, atau menghapus batas seluruhnya.
cek koneksi mysql global:
1 |
SHOW GLOBAL VARIABLES LIKE 'max_connections'; |
1 2 3 4 5 6 7 |
MariaDB [(none)]> show variables like 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 50 | +-----------------+-------+ 1 row in set (0.01 sec) |
cara limits databases per user:
1 2 |
GRANT USAGE ON *.* TO 'username'@'localhost' WITH MAX_QUERIES_PER_HOUR 60; |
Pernyataan ini memberitahu MySQL untuk memodifikasi hak untuk username pada semua database, dan menetapkan batas 60 queri per jam menggunakan jenis batas MAX_QUERIES_PER_HOUR. Ada beberapa jenis batas yang berbeda yang dapat digunakan:
MAX_QUERIES_PER_HOUR
Limits the account to X queries per hour.
MAX_UPDATES_PER_HOUR
Limits the account to X UPDATE statements per hour.
MAX_CONNECTIONS_PER_HOUR
Limits the account to X total connections per hour.
MAX_USER_CONNECTIONS
Limits the account to X total simultaneous connections for the account.
Anda dapat menggabungkan semua jenis batas ini untuk membatasi penggunaan ;
1 2 3 4 5 |
GRANT ALL ON *.* TO 'username'@'localhost' WITH MAX_QUERIES_PER_HOUR 100 MAX_UPDATES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 20 MAX_USER_CONNECTIONS 5; |
untuk refrensi bisa akses Klik