Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

'max_user_connections' disetel ke 200 - masih mendapatkan kesalahan

Adapun masalah "koneksi maksimal" Anda, bisa jadi salah satu dari tiga hal:

1) Server sudah memiliki terlalu banyak koneksi terbuka. Server MySQL hanya dapat menangani sejumlah koneksi terbuka tertentu sebelum menolak untuk mengizinkan lagi, dan batas ini dibagi di antara semua pengguna server. Biasanya disetel cukup tinggi, meskipun mudah bagi seseorang untuk secara efektif DoS server MySQL dengan membuat banyak koneksi (tetapi lihat di bawah)

2) Akun pengguna Anda memiliki jumlah koneksi terbatas yang diizinkan per jam - koneksi lebih lanjut apa pun dalam jam tersebut akan ditolak. Ini disetel per pengguna.

3) Akun pengguna Anda memiliki jumlah koneksi terbuka yang diizinkan - koneksi lebih lanjut akan ditolak. Ini disetel per pengguna.

Selalu penting untuk membaca pesan kesalahan yang Anda dapatkan kembali pada upaya koneksi, karena dalam kebanyakan kasus ini akan menunjukkan dengan tepat alasan kegagalan.

Jika akun Anda memiliki batas jumlah maksimum koneksi (skenario #3), kesalahannya adalah:Kode:

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_user_connections' resource (current value: 1) 

Di mana 'mysqldba' akan menjadi nama pengguna Anda, dan 'nilai saat ini' adalah jumlah maksimum koneksi terbuka yang diizinkan dari pengguna ini.

Jika akun Anda memiliki batas jumlah maksimum koneksi per jam (skenario #2), kesalahannya adalah:Kode:

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_connections_per_hour' resource (current value: 1) 

Di mana, sekali lagi, 'mysqldba' akan menjadi nama pengguna Anda, dan 'nilai saat ini' adalah jumlah maksimum koneksi per jam yang diizinkan untuk pengguna ini.

Jika Anda mendapat pesan kesalahan (kode 1040) menunjukkan bahwa seluruh server MySQL telah kehabisan slot koneksi - ini adalah skenario DoS yang saya sebutkan di atas.

Apa yang dapat Anda lakukan? Dari apa yang Anda katakan, Anda tidak memiliki hak pengguna super di server ini, jadi tidak ada apa-apa, selain mengeluh ke SysAdmin yang bertanggung jawab atas server itu. Mereka mungkin meningkatkan jumlah maksimum koneksi yang diizinkan, yang dapat memecahkan masalah dalam jangka pendek, tetapi jika orang lain yang menggunakan server membuat sejumlah koneksi basis data yang bodoh, slot hanya akan terisi kembali. Apa yang mungkin harus mereka lakukan adalah juga memberlakukan batas koneksi terbuka maksimum per pengguna - ini akan menghentikan pengguna berat yang menyumbat server. Dalam situasi server-bersama seperti Anda, ini yang paling masuk akal - 'pengguna yang kuat' akan/seharusnya memiliki server sendiri, atau dapat/harus membayar untuk meningkatkan koneksi terbuka maksimum mereka.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hubungan Banyak-ke-Banyak di MySQL

  2. Panjang komentar tabel di MySQL

  3. MySQL:Bagaimana mengizinkan koneksi jarak jauh ke mysql

  4. Ubah kueri ini menjadi fasih

  5. MySQL &NHibernate. Bagaimana cara memperbaiki kesalahan:Kolom 'ReservedWord' bukan milik tabel ReservedWords?