it-swarm.asia

ما المدة التي تستغرقها اتصالات MySQL للنوم؟

قمت بتسجيل الدخول إلى الخادم الخاص بي للتحقق من حالة قاعدة البيانات ولاحظت على SHOW PROCESSLIST; أن هناك عددًا كبيرًا من اتصالات النوم القديمة جدًا.

enter image description here ما هي المدة الزمنية التي يجب أن يكون فيها حد الاتصال قبل قتل الاتصال؟

كيف أضبط الحد الزمني في MySQL 5.0.51a-3ubuntu5.4؟

ملحوظة:

أنا أستخدم PHP 5.2.x و symfony framework 1.2.

39
Patrick

mysqld سوف تنتهي مهلة اتصالات قاعدة البيانات بناءً على خيارين للخادم:

كلاهما 28800 ثانية (8 ساعات) بشكل افتراضي.

يمكنك ضبط هذه الخيارات في /etc/my.cnf

إذا كانت اتصالاتك مستمرة (مفتوحة عبر mysql_pconnect) يمكنك تخفيض هذه الأرقام إلى شيء معقول مثل 600 (10 دقائق) أو حتى 60 (دقيقة واحدة). أو ، إذا كان تطبيقك يعمل بشكل جيد ، يمكنك ترك الإعداد الافتراضي. هذا متروك لكم.

يجب عليك تعيين هذه على النحو التالي في my.cnf (يسري مفعولها بعد إعادة تشغيل mysqld):

[mysqld]
interactive_timeout=180
wait_timeout=180

إذا كنت لا تريد إعادة تشغيل الخلية ، فقم بتشغيل هذين الأمرين:

SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;

لن يؤدي هذا إلى إغلاق الاتصالات المفتوحة بالفعل. سيؤدي ذلك إلى إغلاق الاتصالات الجديدة خلال 180 ثانية.

54
RolandoMySQLDBA