解決InterfaceError: 2013: Lost connection to MySQL server during query

服務器後臺報錯:
InterfaceError: 2013: Lost connection to MySQL server during query
具體信息如下:

File "./sr/web/source/manage.py", line 399, in get_tance_users
    return MysqlConn().select(sql)
  File "./src/lib/mysqlconn.py", line 90, in select
    data = cursor.fetchall()
  File "/usr/local/lib/python2.7/site-packages/mysql/connector/cursor.py", line 1174, in fetchall
    (rows, eof) = self._connection.get_rows()
  File "/usr/local/lib/python2.7/site-packages/mysql/connector/connection.py", line 671, in get_rows
    rows = self._protocol.read_text_result(self._socket, count)
  File "/usr/local/lib/python2.7/site-packages/mysql/connector/protocol.py", line 309, in read_text_result
    packet = sock.recv()
  File "/usr/local/lib/python2.7/site-packages/mysql/connector/network.py", line 226, in recv_plain
    raise errors.InterfaceError(errno=2013)
InterfaceError: 2013: Lost connection to MySQL server during query

單看錯誤信息,認爲是應用在讀mysql的時候,使用了一個無效的鏈接,然後在mysql端kill掉了一些佔時間比較長的鏈接,但是問題依然存在,那麼在細看一眼錯誤:在查詢的過程中,對mysql建立的鏈接丟失了,那麼是這什麼原因導致的呢?

查詢量太大了

後來,將這條sql那到mysql裏執行了一下,確實這次查詢一共掃描了3億條數據,返回了1萬條數據,就是因爲掃描和返回的數據量大導致的,後來程序改成了分頁來解決這個問題了,好的產品邏輯設計很重要!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章