Pengenalan ralat MySQL: Terlalu Banyak Sambungan
Apabila anda mempunyai aplikasi web (laman web, blog, forum, dll.) Yang mendapat permintaan tinggi, iaitu, sebilangan besar pengguna mengunjungi, ini bermakna peningkatan penggunaan pada pelayan. Sekiranya aplikasi web tersebut menggunakan pangkalan data MySQL dan pertanyaannya sangat banyak (kerana pengaturcaraan web yang buruk atau oleh banyak pengguna yang menggunakan web), ada kemungkinan MySQL akan menunjukkan ralat ini:
mysqli_connect(): (HY000/1040): Too many connections
Apakah maksud ralat MySQL: Terlalu Banyak Sambungan?
Ini bermaksud terlalu banyak permintaan yang masuk ke MySQL, lebih banyak daripada yang dapat diterima, lebih daripada permintaan atau menunggu.
Bagaimana menyelesaikannya?
Ringkasnya, kita mesti meningkatkan had maksimum permintaan (sambungan) yang disokong oleh MySQL.
Saya akan memberi anda dua pilihan untuk menyelesaikan masalah ini:
1. Kami mengedit fail /etc/mysql/my.cfg:
nano /etc/mysql/my.cfg
Di dalamnya kita meletakkan perkara berikut di bawah yang tertulis [mysql]:
max_connections = 500 max_user_connections = 500
Ini akan meningkatkan bilangan sambungan maksimum dari 100 (yang merupakan lalai) menjadi 500.
Kami menyimpan dan keluar, kemudian kita mulakan semula perkhidmatan MySQL dan itu sahaja. Perubahan ini kekal.
2. Cara lain untuk menyelesaikan masalah ini adalah dengan menukar had maksimum yang sama, tetapi melalui pertanyaan MySQL.
Mari kita tunjukkan had semasa:
mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'
Ini akan menunjukkan kepada kita sesuatu seperti ini:
+ ----------------- + ------- + | Pembolehubah_nama | Nilai | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +
Dengan kata lain, had semasa ialah 151 sambungan, baiklah, tingkatkannya menjadi 500 dengan cara pertanyaan:
mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'
Sedia!
Masalah dengan cara ini ialah apabila perkhidmatan dimulakan semula, konfigurasi ini akan hilang.
Untuk memberikan perincian ini, anda boleh membuat skrip bash yang disahkan setiap kali X, atau bahkan menambahkan baris ke permulaan atau memulakan semula blok daemon 😉
Tetapi mengapa saya mahu mengetahui pilihan ke-2 ini? ... baik, itulah yang biasa saya katakan. Tetapi sebulan yang lalu Pelayan Ubuntu mengabaikan kaedah No.1, jadi ... dalam kes OS bodoh yang melampau, kami mempunyai pilihan ke-2 yang berfungsi juga 😉
Pos yang bagus, MySql… mereka banyak menggunakan FreeBSD,… .KZKG ^ Gaara?,… Akan lebih baik jika anda membuat posting, mengenai cara memasang dan mengkonfigurasi MySql di FreeBSD seperti: SSH (safe - shell), SSH (via Web), SFTP (SSH-File Transfer Protocol), Sambungan Apache - PHP- MySql, PHP5 dan PhpSysInfo.
Untuk ini saya perlu memasang FreeBSD, saya rasa saya tidak mempunyai masa sekarang, saya baru saja menukar pekerjaan dan saya mempunyai banyak tanggungjawab baru 🙁
Saya baru-baru ini terpaksa melakukan sesuatu yang serupa untuk projek dengan nodejs. Dalam kes saya meningkat menjadi 250 dan itu sudah cukup, buat masa ini saya baik-baik saja. Terima kasih atas maklumatnya
Helo, bolehkah anda membantu saya memasukkan /etc/mysql/my.cfg?
Saya mempunyai VPS, tetapi saya tidak dapat masuk dengan PUTTY.
Greetings.
Untuk menyelesaikan masalah Opsyen 1.- Mengomentari pilihan, dan menyimpan perubahan ketika memulakan semula pelayan, fail mesti diedit mengikut versi:
//////////////////////////////////////////////////// ////////////////////
// Saya mengubah direktori di Ubuntu 16.04 ////////////////////////
//////////////////////////////////////////////////// ////////////////////
Saya melihat /etc/mysql/mysql.conf.d/mysqld.cnf
//////////////////////////////////////////////////// ////////////////////
// Saya mengubah direktori di Ubuntu 15.04 ////////////////////////
//////////////////////////////////////////////////// ////////////////////
vi /etc/mysql/mariadb.conf.d/mysqld.cnf
//////////////////////////////////////////////////// ////////////////////
// Saya mengubah direktori di Ubuntu lama ////////////////////////
//////////////////////////////////////////////////// ////////////////////
Saya melihat /etc/mysql/my.cnf
//////////////////////////////////////////////////// ////////////////////
// tambahkan baris ini di bawah teg [mysqld] atau [mysql] //
// Kemudian mulakan semula pelayan //
//////////////////////////////////////////////////// ////////////////////
sambungan_maks = 500
Tutorial dari awal tidak memberitahu anda cara mengubahnya