Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

Tôi có một bàn lớn và tôi cần xử lý tất cả các hàng trong đó. Tôi luôn nhận được thông báo kết nối bị mất này và tôi không thể kết nối lại và khôi phục con trỏ về vị trí cuối cùng. Đây về cơ bản là mã tôi có ở đây:

#
import MySQLdb

class DB:
  conn = None

  def connect(self):
    self.conn = MySQLdb.connect('hostname', 'user', '*****', 'some_table', cursorclass=MySQLdb.cursors.SSCursor)

  def query(self, sql):
    try:
     cursor = self.conn.cursor()
     cursor.execute(sql)
   except (AttributeError, MySQLdb.OperationalError):
     self.connect()
     cursor = self.conn.cursor()
     cursor.execute(sql)
   return cursor
#

#
db = DB()
sql = "SELECT bla FROM foo"
data = db.query(sql)

for row in data:
    do_something(row)
#

Nhưng tôi luôn nhận được điều này:

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#

Bạn còn ý kiến ​​nào không?

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

Jon Seigel

12.1k8 Huy hiệu vàng57 Huy hiệu bạc92 Huy hiệu Đồng8 gold badges57 silver badges92 bronze badges

Hỏi ngày 10 tháng 12 năm 2009 lúc 23:29Dec 10, 2009 at 23:29

3

Các tài liệu MySQL có toàn bộ trang dành riêng cho lỗi này: http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

Lưu ý là

  • Bạn cũng có thể nhận được các lỗi này nếu bạn gửi truy vấn đến máy chủ không chính xác hoặc quá lớn. Nếu MySQLD nhận được một gói quá lớn hoặc không theo thứ tự, nó cho rằng có điều gì đó không ổn với máy khách và đóng kết nối. Nếu bạn cần các truy vấn lớn (ví dụ: nếu bạn đang làm việc với các cột Big Blob), bạn có thể tăng giới hạn truy vấn bằng cách đặt biến MAX_ALLED_PACKET của máy chủ, có giá trị mặc định là 1MB. Bạn cũng có thể cần tăng kích thước gói tối đa trên đầu khách hàng. Thông tin thêm về việc thiết lập kích thước gói được đưa ra trong phần B.5.2.10, gói quá lớn.

  • Bạn có thể nhận thêm thông tin về các kết nối bị mất bằng cách bắt đầu MySQLD với tùy chọn-log-warnings = 2. Điều này ghi lại một số lỗi bị ngắt kết nối trong tệp hostname.err

Đã trả lời ngày 10 tháng 12 năm 2009 lúc 23:41Dec 10, 2009 at 23:41

Mark Careymark CareyMark Carey

1.52710 huy hiệu bạc9 Huy hiệu đồng10 silver badges9 bronze badges

1

Có ba cách để phóng to max_allowed_packet của máy chủ MySQL:

  1. Thay đổi
    #
    Traceback (most recent call last):
      File "teste.py", line 124, in 
       run()
     File "teste.py", line 109, in run
       for row in data:
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
       row = self.fetchone()
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
       r = self._fetch_row(1)
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
       return self._result.fetch_row(size, self._fetch_type)
       _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
        Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
    #
    
    6 trong tệp
    #
    Traceback (most recent call last):
      File "teste.py", line 124, in 
       run()
     File "teste.py", line 109, in run
       for row in data:
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
       row = self.fetchone()
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
       r = self._fetch_row(1)
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
       return self._result.fetch_row(size, self._fetch_type)
       _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
        Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
    #
    
    7 trên máy chủ MySQL và khởi động lại máy chủ
  2. Thực hiện SQL trên máy chủ MySQL:
    #
    Traceback (most recent call last):
      File "teste.py", line 124, in 
       run()
     File "teste.py", line 109, in run
       for row in data:
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
       row = self.fetchone()
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
       r = self._fetch_row(1)
     File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
       return self._result.fetch_row(size, self._fetch_type)
       _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
        Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
    #
    
    8
  3. Python thực thi SQL sau khi kết nối với MySQL:
connection.execute('set max_allowed_packet=67108864')

HK Boy

1.39811 Huy hiệu vàng19 Huy hiệu bạc24 Huy hiệu đồng11 gold badges19 silver badges24 bronze badges

Đã trả lời ngày 9 tháng 5 năm 2013 lúc 4:16May 9, 2013 at 4:16

imxylzimxylzimxylz

7,8054 Huy hiệu vàng27 Huy hiệu bạc25 Huy hiệu Đồng4 gold badges27 silver badges25 bronze badges

1

Bạn cũng có thể gặp phải lỗi này với các ứng dụng làm hỏng các quy trình con, tất cả đều cố gắng sử dụng cùng một kết nối với máy chủ MySQL. Điều này có thể tránh được bằng cách sử dụng một kết nối riêng cho từng quá trình trẻ em.

Fork có thể đánh bạn. Hãy coi chừng không trong trường hợp này mặc dù.

Đã trả lời ngày 12 tháng 8 năm 2013 lúc 7:11Aug 12, 2013 at 7:11

XVGAXVGAxvga

5711 Huy hiệu vàng9 Huy hiệu bạc15 Huy hiệu đồng1 gold badge9 silver badges15 bronze badges

3

Hãy chắc chắn rằng bạn đóng con trỏ trước khi kết nối. Tôi đã giải quyết vấn đề của mình với điều này:

if cur and con:                        
    cur.close() 
    con.close() 

Đã trả lời ngày 7 tháng 3 năm 2012 lúc 14:51Mar 7, 2012 at 14:51

JipjipJiP

1601 Huy hiệu bạc5 Huy hiệu đồng1 silver badge5 bronze badges

1

Bạn cần tăng thời gian chờ trên kết nối của bạn. Nếu bạn không thể hoặc không muốn làm điều đó vì một số lý do, bạn có thể thử gọi:

data = db.query(sql).store_result()

Điều này sẽ tìm nạp tất cả các kết quả ngay lập tức, sau đó kết nối của bạn sẽ không hết thời gian khi lặp đi lặp lại chúng.

Đã trả lời ngày 10 tháng 12 năm 2009 lúc 23:40Dec 10, 2009 at 23:40

Mark Byersmark ByersMark Byers

786K188 Huy hiệu vàng1553 Huy hiệu bạc1440 Huy hiệu đồng188 gold badges1553 silver badges1440 bronze badges

2

Tôi trường hợp của tôi lý do cho

Lỗi 2013 (HY000): Mất kết nối với máy chủ MySQL trong quá trình truy vấn

Lỗi là các phần của bàn của tôi đã bị hỏng. Tôi cũng không thể

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
9 bàn của tôi vì một số hàng đã phá vỡ nó. Lỗi không liên quan đến bất kỳ vấn đề bộ nhớ nào, vv như đã đề cập ở trên.corrupted. I was also not able to
#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
9 my table because some rows broke it. The error was not related to any memory issues etc. like mentioned above.

Điều tốt đẹp là MySQL đã trả lại cho tôi số hàng là số đầu tiên thất bại. Nó giống như

MySQLDump: Lỗi 2013: Mất kết nối với máy chủ MySQL trong quá trình truy vấn khi bán bảng MyTable ở hàng: 12723

Giải pháp là sao chép dữ liệu vào một bảng mới. Trong trường hợp của tôi, tôi đã mất 10 hàng dữ liệu vì tôi phải bỏ qua các hàng bị hỏng này. Đầu tiên tôi tạo một bảng "TMP" với lược đồ của cái cũ.

connection.execute('set max_allowed_packet=67108864')
0 là bạn của bạn ở đây. Ví dụ.

SHOW CREATE TABLE mydatabase.mytable;

Với tôi đã tạo ra bảng mới. Hãy gọi nó là mytabletmp. Và sau đó sao chép các hàng bạn có thể sao chép qua ví dụ:

insert into mysqltabletmp select * from mytable where id < 12723;
insert into mysqltabletmp select * from mytable where id > 12733;

Sau đó, Drop Old Table, đổi tên TMP Table thành tên bảng cũ.

Ngoài ra còn có một số thông tin tốt đẹp từ Peter về vấn đề này.

Đã trả lời ngày 11 tháng 3 năm 2014 lúc 14:04Mar 11, 2014 at 14:04

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

H6.H6.H6.

30.2K12 Huy hiệu vàng76 Huy hiệu bạc81 Huy hiệu đồng12 gold badges76 silver badges81 bronze badges

Điều này đã xảy ra với tôi với Mariadb vì tôi đã tạo một cột

connection.execute('set max_allowed_packet=67108864')
1 A
connection.execute('set max_allowed_packet=67108864')
2 .. Đoán điều đó quá nặng đối với một duy nhất, vì phần chèn đã hết thời gian.

Đã trả lời ngày 23 tháng 2 năm 2014 lúc 22:23Feb 23, 2014 at 22:23

AlkanshelalkanshelAlkanshel

4.0931 Huy hiệu vàng34 Huy hiệu bạc51 Huy hiệu đồng1 gold badge34 silver badges51 bronze badges

Đa xử lý và Django DB không chơi tốt với nhau.

Cuối cùng tôi đã kết thúc Django DB Connection Điều đầu tiên trong quy trình mới.

Để người ta sẽ không có tài liệu tham khảo về kết nối được sử dụng bởi cha mẹ.

from multiprocessing import Pool

multi_core_arg = [[1,2,3], [4,5,6], [7,8,9]]
n_cpu = 4
pool = Pool(n_cpu)
pool.map(_etl_, multi_core_arg)
pool.close()
pool.join()

def _etl_(x):
    from django.db import connection 
    connection.close() 
    print(x)

HOẶC

connection.execute('set max_allowed_packet=67108864')
3 gọi một hàm bắt đầu bằng

Một số đề xuất khác để sử dụng

from multiprocessing.dummy import Pool as ThreadPool

Nó đã giải quyết vấn đề (2013, bị mất kết nối) của tôi, nhưng sử dụng chủ đề Gil, khi thực hiện IO, sẽ phát hành nó khi kết thúc IO.

Một cách tương đối, quá trình sinh ra một nhóm công nhân giao tiếp lẫn nhau, có thể chậm hơn.

Tôi khuyên bạn nên thời gian nó. Một lời khuyên phụ là sử dụng Joblib được hỗ trợ bởi Dự án Scikit-Learn. Một số kết quả hiệu suất cho thấy nó thực hiện nhóm gốc () .. mặc dù nó để lại trách nhiệm với lập trình viên để xác minh chi phí thời gian chạy thực sự.

Đã trả lời ngày 5 tháng 7 năm 2017 lúc 7:35Jul 5, 2017 at 7:35

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

CodeFarmerCodeFarmerCodeFarmer

2.55622 huy hiệu bạc31 huy hiệu đồng22 silver badges31 bronze badges

1

Đặt cài đặt 'MAX_ALLOWED_PACKET' thành 64M và khởi động lại máy chủ MySQL của bạn. Nếu điều đó không khắc phục được vấn đề của bạn, vấn đề có thể nằm ở nơi khác.

Tôi đã có một ứng dụng PHP CLI đa luồng thực hiện các truy vấn đồng thời và gần đây tôi đã nhận thấy vấn đề này. Bây giờ rõ ràng với tôi rằng Máy chủ MySQL xem xét tất cả các kết nối từ cùng một IP với kết nối 'đơn' và do đó thả tất cả các kết nối bất cứ khi nào một truy vấn hoàn thành.

Mặc dù vậy, tôi tự hỏi rằng có một cách để làm cho MySQL cho phép nói 100 kết nối từ cùng một IP và coi mỗi kết nối là một kết nối riêng lẻ.

Đã trả lời ngày 30 tháng 5 năm 2012 lúc 16:19May 30, 2012 at 16:19

2

Tôi cũng gặp phải những vấn đề tương tự. Trong trường hợp của tôi, nó đã được giải quyết bằng cách lấy con trỏ theo cách này:

cursor = self.conn.cursor(buffered=True)

Đã trả lời ngày 7 tháng 10 năm 2016 lúc 16:01Oct 7, 2016 at 16:01

1

Giống như @imxylz, nhưng tôi đã phải sử dụng

connection.execute('set max_allowed_packet=67108864')
4 vì tôi đã gặp lỗi chỉ đọc mà không sử dụng tham số toàn cầu.

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
0

8.0.16

Đã trả lời ngày 18 tháng 6 năm 2019 lúc 21:18Jun 18, 2019 at 21:18

Điều này cũng có thể xảy ra nếu ai đó hoặc thứ gì đó giết chết kết nối của bạn bằng lệnh giết.

Đã trả lời ngày 17 tháng 3 năm 2015 lúc 14:23Mar 17, 2015 at 14:23

Sam Brightmansam BrightmanSam Brightman

2.7614 Huy hiệu vàng34 Huy hiệu bạc33 Huy hiệu Đồng4 gold badges34 silver badges33 bronze badges

Điều này đã xảy ra với tôi khi tôi cố gắng cập nhật một bảng có kích thước trên đĩa lớn hơn không gian đĩa có sẵn. Giải pháp cho tôi chỉ đơn giản là tăng không gian đĩa có sẵn.

Đã trả lời ngày 14 tháng 12 năm 2015 lúc 17:04Dec 14, 2015 at 17:04

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

e18re18re18r

6.9164 Huy hiệu vàng42 Huy hiệu bạc40 Huy hiệu đồng4 gold badges42 silver badges40 bronze badges

Trong trường hợp của tôi, tôi đã gặp vấn đề này khi tìm nguồn cung cấp một bãi rác SQL đã đặt các bảng theo thứ tự sai. Việc tạo ra trong câu hỏi bao gồm một ràng buộc ... các tài liệu tham khảo tham chiếu một bảng chưa được tạo.

Tôi đã định vị bảng trong câu hỏi, và chuyển câu lệnh tạo của nó lên trên phạm vi vi phạm và lỗi đã biến mất.

Lỗi khác mà tôi gặp phải liên quan đến bãi rác bị lỗi này là lỗi 1005/ errno: 150 - "Không thể tạo bảng", một lần nữa, một vấn đề của các bảng được tạo theo thứ tự.

Đã trả lời ngày 21 tháng 4 năm 2016 lúc 14:01Apr 21, 2016 at 14:01

Điều này xảy ra với tôi khi tên

connection.execute('set max_allowed_packet=67108864')
5 của tôi có cùng tên với tên
connection.execute('set max_allowed_packet=67108864')
5 khác.

Thay đổi tên

connection.execute('set max_allowed_packet=67108864')
5 của tôi đã giải quyết điều này.

Đã trả lời ngày 21 tháng 8 năm 2016 lúc 8:50Aug 21, 2016 at 8:50

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

Tamatamatama

3051 Huy hiệu vàng4 Huy hiệu bạc11 huy hiệu đồng1 gold badge4 silver badges11 bronze badges

Tôi đã gặp phải vấn đề tương tự. Vì một số vấn đề khác, tôi đã cố gắng thêm một dòng

connection.execute('set max_allowed_packet=67108864')
8 vào các chức năng khác của tôi. Thay vào đó, tôi đã loại bỏ tất cả các đóng bên ngoài này và thiết lập lớp học của mình như thế này:

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
1

Bất kỳ chức năng nào được gọi trong lớp này đều kết nối, cam kết và đóng.

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

Sᴀᴍ onᴇᴌᴀ

8.0428 Huy hiệu vàng32 Huy hiệu bạc58 Huy hiệu Đồng8 gold badges32 silver badges58 bronze badges

Đã trả lời ngày 14 tháng 8 năm 2017 lúc 0:08Aug 14, 2017 at 0:08

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

Ông Pandamr PandaMr Panda

Huy hiệu bạc 1011 huy hiệu đồng1 silver badge8 bronze badges

Tôi đã nhận được lỗi này với một "đường ống bị hỏng" khi tôi cố gắng chèn số lượng lớn với hàng triệu hồ sơ. Cuối cùng tôi đã giải quyết điều này bằng cách phân hủy dữ liệu của mình thành các kích thước lô nhỏ hơn và sau đó chạy một lệnh thực thi với con trỏ MySQL cho mỗi lần chèn tôi cần làm. Điều này đã giải quyết vấn đề và dường như không ảnh hưởng đến hiệu suất theo bất kỳ cách đáng chú ý nào.

ví dụ.

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
2

Đã trả lời ngày 5 tháng 9 năm 2018 lúc 17:50Sep 5, 2018 at 17:50

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

imapotatoe123imapotatoe123imapotatoe123

6071 Huy hiệu vàng10 Huy hiệu bạc19 Huy hiệu đồng1 gold badge10 silver badges19 bronze badges

Bạn có thể thấy câu trả lời của tôi theo sau cho vấn đề tương tự:

https://stackoverflow.com/a/69610550/16647254

Sử dụng khóa để giải quyết vấn đề này

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
3

Đã trả lời ngày 28 tháng 10 năm 2021 lúc 11:44Oct 28, 2021 at 11:44

Tôi đã có cùng một vấn đề và đấu vật trong nhiều giờ, thử nghiệm nhiều giải pháp khác nhau. Những gì cuối cùng làm việc cho tôi là điều này. Mã mở ra một nhóm kết nối 10 ban đầu, sau đó mysql.connector phục vụ các kết nối từ nhóm với get_connection ().

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
4

Đã trả lời ngày 25 tháng 4 lúc 10:33Apr 25 at 10:33

thedudethedudethedude

5075 huy hiệu bạc5 huy hiệu đồng5 silver badges5 bronze badges

Tình huống tương tự này đã xảy ra với tôi khi làm việc với

connection.execute('set max_allowed_packet=67108864')
9,
if cur and con:                        
    cur.close() 
    con.close() 
0 và
if cur and con:                        
    cur.close() 
    con.close() 
1 và giống như
if cur and con:                        
    cur.close() 
    con.close() 
2 ở trên tôi cũng đã tạo một chức năng để chia dữ liệu thành các đoạn và chuyển chúng sang cơ sở dữ liệu SQL. Điều này có thể được sử dụng đặc biệt là nếu thay đổi
if cur and con:                        
    cur.close() 
    con.close() 
3 trong tùy chọn cấu hình MySQL không hoạt động với bạn.

#
Traceback (most recent call last):
  File "teste.py", line 124, in 
   run()
 File "teste.py", line 109, in run
   for row in data:
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 417, in next
   row = self.fetchone()
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 388, in fetchone
   r = self._fetch_row(1)
 File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 285, in _fetch_row
   return self._result.fetch_row(size, self._fetch_type)
   _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
    Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in > ignored
#
5

Đã trả lời ngày 15 tháng 4 năm 2021 lúc 19:05Apr 15, 2021 at 19:05

Angwaltangwaltangwalt

871 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges

1

Rất đơn giản để giải quyết, truy cập bảng điều khiển của bạn PHPADMIN và nhấp vào config/sau đó chỉnh sửa tệp .ini bạn thấy. Hãy tìm cổng 3306 nếu đó không phải là cổng bạn đang sử dụng để thay đổi kết nối 3306 sang cổng bạn đang sử dụng. Trên màn hình đăng nhập của bạn, chỉ cần đặt localhost cho máy chủ của bạn, cổng của bạn nếu nó không phải là mặc định hoặc nếu bạn không thay đổi tên tệp My.ini trong cấu hình SQL LEAVIT như hiện tại. Sau đó đặt tên người dùng của bạn: root hoặc tên bạn đã tạo sau đó mật khẩu: 1234 hoặc tên bạn đã gán. Nếu bạn đang kết nối Localy, không kiểm tra tùy chọn URL. Sau đó nhập tên của cơ sở dữ liệu bạn muốn chỉnh sửa. Lưu ý: Khi bạn được kết nối, bạn sẽ thấy danh sách các cơ sở dữ liệu bạn có trên máy chủ hoặc máy chủ bạn đang kết nối.

Đã trả lời ngày 24 tháng 7 năm 2018 lúc 17:36Jul 24, 2018 at 17:36

Hướng dẫn (pymysql.err.operationalerror) (2013, lost connection to mysql server during query) - (pymysql.err.operationalerror) (2013, mất kết nối với máy chủ mysql trong khi truy vấn)

3

Làm thế nào giải quyết kết nối bị mất với máy chủ MySQL trong quá trình truy vấn?

Mở các tùy chọn Workbench MySQL. Kiểm tra xem giá trị thời gian chờ thời gian chờ SSH và DBMS chỉ được đặt thành một vài giây. Cố gắng tăng giá trị mặc định của thời gian chờ kết nối. Lưu cài đặt, đóng Workbench MySQL và mở lại kết nối để xem bạn có thể kết nối với cơ sở dữ liệu không.Check if the SSH Timeout and DBMS Timeout value is set to only a few seconds. Try to increase the default value of the connection timeouts. Save the settings, close the MySQL Workbench and reopen the connection to see if you are able to connect to the database.

Tại sao MySQL tiếp tục mất kết nối?

Lý do phổ biến nhất cho máy chủ MySQL đã biến mất là lỗi máy chủ đã hết thời gian và đóng kết nối.Theo mặc định, máy chủ đóng kết nối sau 8 giờ nếu không có gì xảy ra.Bạn có thể thay đổi giới hạn thời gian bằng cách đặt biến Wait_Timeout khi bạn bắt đầu mySQLD.the server timed out and closed the connection. By default, the server closes the connection after 8 hours if nothing has happened. You can change the time limit by setting the wait_timeout variable when you start mysqld.

MySQL và pymysql có giống nhau không?

PYMYSQL là thư viện máy khách Pure Python MySQL, có nghĩa là nó là gói Python tạo giao diện API để chúng tôi truy cập cơ sở dữ liệu quan hệ MySQL., which means it is a Python package that creates an API interface for us to access MySQL relational databases.

Không thể kết nối máy chủ có thể không chạy kết nối bị mất với máy chủ MySQL trong quá trình truy vấn?

Thông thường có nghĩa là không có máy chủ MySQL chạy trên hệ thống hoặc bạn đang sử dụng tên tệp unix không chính xác hoặc số cổng TCP/IP khi cố gắng kết nối với máy chủ.Bạn cũng nên kiểm tra xem cổng TCP/IP bạn đang sử dụng chưa bị chặn bởi tường lửa hoặc dịch vụ chặn cổng.there is no MySQL server running on the system or that you are using an incorrect Unix socket file name or TCP/IP port number when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.