2015-01-09 3 views
0

У меня есть сценарий питона, который получает свою версию MySQL, но я получаю ту же ошибку «_mysql_exceptions.InterfaceError: (0,„“)»Python MySQL курсор закрывает соединение

я пошел на консоль python2.7 и попробовал то же самое,

import MySQLdb 
conn = MySQLdb.connect (host="localhost",user="user", passwd="pass", db="example") 
cursor = conn.cursor() 
cursor.execute ("SELECT VERSION()") 

Traceback (most recent call last): File "", line 1, in
File "/usr/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute self.errorhandler(self, exc, value) File "/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.InterfaceError: (0, '')

и файл

import sys 
import MySQLdb 
try: 
    conn = MySQLdb.connect (host="localhost",user="user", passwd="pass", db="example") 
except MySQLdb.Error, e: 
    print "Error %d: %s" % (e.args[0], e.args[1]) 
    sys.exit (1) 
try: 
    cursor = conn.cursor() 
    cursor.execute ("SELECT VERSION()") 
    row = cursor.fetchone() 
    print "server version:", row[0] 
    cursor.close() 
except MySQLdb.Error, e: 
    print "Error %d: %s" % (e.args[0], e.args[1]) 
    #sys.exit (1) 
conn.close() 

[пользователь @ локальный] $ питон b.py

Error 0: Traceback (most recent call last): File "b.py", line 18, in conn.close() _mysql_exceptions.ProgrammingError: closing a closed connection

Благодаря

ответ

1

Отступ второй conn.Close(), в противном случае вы закрываете закрытое соединение после успешного запроса.

+0

Если я вставляю второй conn.close(), он все еще не отображает версию, и он дает ту же ошибку –

+0

Извините ... глядя на это свежими глазами, понимая теперь, что отладка b.py не ваша цель, но понимание проблемы с подключением. – dylrei

+0

Я предполагаю, что соединение было закрыто по какой-либо причине. Что произойдет, если вы выполните «print conn.open» непосредственно перед вторым блоком «try»? – dylrei

2

Если ваш блок try успешно работает, вы дважды закрываете соединение. Я думаю, вы можете положить его в блок, чтобы решить вашу проблему.

Смежные вопросы