“Maksimum kullanıcı bağlantıları” hatasından nasıl kurtulurum?


16

Web uygulamam için MySQLi kullanıyorum, ancak belirli bir sayfayı ziyaret etmek istediğimde alıyorum mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connections.

Zaten tüm bağlantıları kapatmaya çalıştım ama bu durumu iyileştirmiyor.

Herhangi bir anda hangi bağlantıların açık olduğunu veya bu sorunu çözmeme yardımcı olabilecek diğer yararlı verileri tam olarak bilmenin bir yolu var mı?

BTW, PHP 5.2.17 ve MySQL 5.1 kullanıyorum.

Yanıtlar:


24

Max_user_connections seçeneği , sunucu örneğindeki toplam eşzamanlı bağlantı sayısına değil, bireysel kullanıcı hesabına uygulanan bir sınırdır.

Diyelim ki kullanıcı arandı db_user@localhost. Bu sorguyu çalıştırarak bu kullanıcının bağlantı sınırının ne olduğunu öğrenebilirsiniz:

SELECT max_user_connections FROM mysql.user
WHERE user='db_user' AND host='localhost';

Bu sıfır olmayan bir değerse, şunu ile değiştirin:

GRANT USAGE ON *.* TO db_user@localhost WITH MAX_USER_CONNECTIONS 0;

veya

UPDATE mysql.user SET max_user_connections = 0
WHERE user='db_user' AND host='localhost';
FLUSH PRIVILEGES;

Bu mysqld, kullanıcının sınırı olarak max_user_connectionsdb_user@localhost genel ayarını kullanmasına izin verir .

Bu noktaya geldiğinizde, şimdi küresel ayarı

SHOW VARIABLES LIKE 'max_user_connections';

Bu sıfır olmayan bir değerse, iki şey yapmanız gerekir

Şey # 1 : Ayarı arayın/etc/my.cnf

[mysqld]
max_user_connections = <some number>

bu çizgiye yorum yap

THING # 2 : Değeri dinamik olarak ayarlayın

SET GLOBAL max_user_connections = 0;

MySQL'in yeniden başlatılması gerekli değildir.

UYARI

Bu ayarı geçmişte tartıştım

Bir şans ver !!!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.