2012-12-28 11 views
6

gunicorn के माध्यम से Django रनिंग आरडीएस (एडब्ल्यूएस mysql), मैं अपने gunicorn लॉग में यह त्रुटि दिखाई दे रही है:Mysql + Django अपवाद: "आदेश सिंक्रनाइज़ेशन से बाहर है, आप इस आदेश को अब नहीं चल सकता"

Exception _mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now") in <bound method Cursor.__del__ of <MySQLdb.cursors.Cursor object at 0x690ecd0>> ignored 

मैं इसे अभी तक पुन: उत्पन्न नहीं कर सकता, न ही मैं अंतर्निहित कोड को ट्रैक कर सकता हूं जो इसे उत्पन्न कर रहा है।

मैं कुछ स्थानों में कच्चे कर्सर का उपयोग कर रहा है, इस पैटर्न निम्नलिखित:

cursor = connections['read_only'].cursor() 
sql = "select username from auth_user;" 
cursor.execute(sql) 
rows = cursor.fetchall() 
usernames = [] 
for row in rows: 
    usernames.append(row[0]) 

कुछ जगहों पर मैं तुरंत पुन: उपयोग किसी अन्य क्वेरी के लिए कर्सर को अंजाम()/fetchall() पैटर्न। कभी-कभी मैं नहीं करता।

मैं कुछ जगहों पर कच्चे प्रबंधक प्रश्नों का भी उपयोग करता हूं।

मैं स्पष्ट रूप से कर्सर बंद नहीं कर रहा हूं, लेकिन मुझे विश्वास नहीं है कि मुझे चाहिए।

इसके अलावा: मैं किसी भी संग्रहित प्रक्रियाओं का उपयोग नहीं कर रहा हूं, init_command पैरामीटर नहीं, और न ही अन्य उत्तरों में संकेत दिया गया कुछ भी मैंने यहां पोस्ट किया है।

डीबग करने के लिए किसी भी विचार या सुझाव की सराहना की जाएगी।

+0

इस अपवाद आप किसी भी असली लॉग में दिखाने के अलावा अन्य समस्याओं के कारण है? – Air

+0

[पायथन, "सिंक से बाहर कमांड का संभावित डुप्लिकेट; अब आप यह आदेश नहीं चला सकते हैं"] (http://stackoverflow.com/questions/11583083/python-commands-out-of-sync-you-cant- रन-यह-कमांड-अब) – e4c5

उत्तर

-3

चेक बाहर https://code.djangoproject.com/ticket/17289

आप की तरह कुछ करने की आवश्यकता होगी:

while cursor.nextset() is not None: 
    if verbose:               
     print "rows modified %s" % cursor.rowcount 
+0

प्रश्न संग्रहित प्रक्रियाओं का बिल्कुल उल्लेख नहीं करता है (जैसा कि आप टिकट देखते हैं)। –

संबंधित मुद्दे