2016-06-14 43 views
1

我使用一个Python驱动程序(mysql.connector)并执行以下操作:呼叫到MySQL cursor.execute()(Python的驱动程序)挂

_db_config = { 'user': 'root', 'password': '1111111', 'host': '10.20.30.40', 'database': 'ddb' }

  • _connection = mysql.connector.connect(**_db_config) # connect to a remote server
  • _cursor = _connection.cursor(buffered=True)
  • _cursor.execute("""SELECT * FROM database LIMIT 1;""")

在某些情况下,调用_cursor.execute()挂起没有例外

顺便说一句,连接到本地MySQL服务器时,它似乎是确定

+1

从第三行删除';' –

+0

@BillalBEGUERADJ我一开始以为它解决了我的问题,但不幸的是它不是。我仍然得到这些挂起,并且超时也没有解决它:-( –

+0

SQL查询本身不是那种消耗那个时间的东西......当你直接从命令行运行查询时,你观察到同样的事情吗? –

回答

0

结果可能会挂起由于大型数据库或不优化的查询。 你可以试试下面的事情

  • 优化您的查询
  • 使用更好的连接器的驱动程序 我通常使用python3.x为此我要么使用“pymysql”或“pypyodbc” 这是新的,优化的驱动程序

这里是一个后用 “pymysql” Gives small idea to with with mysql and python3

+0

我怀疑查询太大,因为OP正在使用LIMIT 1并且要求使用通配符,这不应该太正确吗? – jwillis0720

-1

移动到MySQLdb的(而不是mysql.connector)合作解决所有问题:-)