जवाबों:
एक सेटिंग है जो MySQL 5.5.30: innodb_print_all_deadlocks में शुरू की गई थी
जब यह विकल्प सक्षम हो जाता है, तो InnoDB उपयोगकर्ता लेनदेन में सभी गतिरोधों के बारे में जानकारी mysqld त्रुटि लॉग में दर्ज की जाती है। अन्यथा, आप SHOW इंजन INNODB STATUS कमांड का उपयोग करके केवल अंतिम गतिरोध के बारे में जानकारी देखते हैं। एक कभी-कभी InnoDB गतिरोध जरूरी नहीं कि एक मुद्दा हो, क्योंकि InnoDB तुरंत स्थिति का पता लगाता है, और स्वचालित रूप से लेनदेन में से एक को वापस रोल करता है। आप इस विकल्प का उपयोग इस समस्या का निवारण करने के लिए कर सकते हैं कि डेडलॉक क्यों हो रहा है यदि किसी अनुप्रयोग में रोलबैक का पता लगाने और उसके ऑपरेशन को पुनः प्रयास करने के लिए उपयुक्त त्रुटि-हैंडलिंग तर्क नहीं है। गतिरोधों की एक बड़ी संख्या डीएमएल या चयन जारी करने वाले लेनदेन के पुनर्गठन की आवश्यकता को इंगित कर सकती है ... कई तालिकाओं के लिए अद्यतन विवरण के लिए, ताकि प्रत्येक लेनदेन उसी क्रम में तालिकाओं तक पहुंच जाए, इस प्रकार गतिरोध की स्थिति से बचा जाए।
बस इस सेटिंग को इसमें जोड़ें my.cnf
[mysqld]
innodb_print_all_deadlocks = 1
या
[mysqld]
innodb_print_all_deadlocks = on
आपको mysql को पुनरारंभ करने की आवश्यकता नहीं है। बस mysql में लॉगिन करें और चलाएं
mysql> SET GLOBAL innodb_print_all_deadlocks = 1;
or
mysql> SET GLOBAL innodb_print_all_deadlocks = 'ON';
यह सेटिंग मेरे लिए भी नई है।
इसे आज़माइए और हमें बताइए कि आप क्या सोचते हैं !!!
mysql.user
और चला नहीं सकते FLUSH PRIVILEGES;
।