Cara memperbaiki kesalahan MySQL: Terlalu Banyak Koneksi

Pengenalan kesalahan MySQL: Too Many Connections

Ketika Anda memiliki aplikasi web (situs web, blog, forum, dll.) yang mengalami permintaan tinggi, artinya banyak pengguna yang mengunjunginya, hal ini akan mengakibatkan peningkatan konsumsi sumber daya server. Jika aplikasi web ini menggunakan basis data MySQL dan kuerinya sangat banyak ( karena pemrograman situs web yang buruk atau volume pengguna yang tinggi ), MySQL mungkin menampilkan kesalahan ini:

mysqli_connect(): (HY000/1040): Too many connections

Apa yang dimaksud dengan kesalahan MySQL: Too Many Connections?

Ini berarti terlalu banyak permintaan yang masuk ke MySQL, lebih dari yang dapat diterima, lebih dari yang dapat diantrekan atau menunggu.

Bagaimana cara mengatasinya?

Sederhana, kita harus meningkatkan batas maksimum permintaan (koneksi) yang didukung MySQL.

Saya akan memberi Anda dua opsi untuk memperbaiki masalah ini:

1. Kita mengedit file /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

Di dalamnya kami meletakkan yang berikut di bawah ini di mana dikatakan [mysql]:

max_connections = 500 max_user_connections = 500

Ini akan meningkatkan jumlah koneksi maksimum dari 100 (yang merupakan default) menjadi 500.

Kami menyimpan dan keluar, lalu kami memulai ulang layanan MySQL dan hanya itu. Perubahan ini permanen.

2. Cara lain untuk menyelesaikan masalah ini adalah dengan mengubah batas maksimum, tetapi menggunakan kueri MySQL.

Pertama mari kita tunjukkan batas saat ini:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

Ini akan menunjukkan kepada kita sesuatu seperti ini:

+ ----------------- + ------- + | Variable_name | Nilai | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Dengan kata lain, batas saat ini adalah 151 koneksi, mari kita naikkan menjadi 500 melalui sebuah query:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

Siap!

Masalah dengan cara ini adalah ketika layanan di-restart, konfigurasi ini hilang.

Untuk mengimbangi detail ini, Anda dapat membuat skrip bash yang memeriksa setiap X jumlah waktu, atau bahkan menambahkan baris ke blok mulai atau mulai ulang daemon 

Tapi mengapa saya ingin mengetahui opsi ke-2 ini? … yah, itulah yang saya katakan. Tapi sebulan yang lalu Server Ubuntu mengabaikan metode No.1, jadi... dalam kasus ekstrim OS bodoh, kami memiliki opsi ke-2 yang berfungsi dengan baik 


Tambahkan sebagai sumber pilihan di Google