Cara memperbaiki ralat MySQL: Terlalu Banyak Sambungan

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 😉


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   nex kata

    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.

    1.    KZKG ^ Gaara kata

      Untuk ini saya perlu memasang FreeBSD, saya rasa saya tidak mempunyai masa sekarang, saya baru saja menukar pekerjaan dan saya mempunyai banyak tanggungjawab baru 🙁

  2.   Saul kata

    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

  3.   Francisco kata

    Helo, bolehkah anda membantu saya memasukkan /etc/mysql/my.cfg?

    Saya mempunyai VPS, tetapi saya tidak dapat masuk dengan PUTTY.

    Greetings.

  4.   umpan kata

    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

  5.   marah kata

    Tutorial dari awal tidak memberitahu anda cara mengubahnya