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: Show
Nhưng tôi luôn nhận được điều này:
Bạn còn ý kiến nào không?
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à
Đã 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:
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
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:
Đã 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:
Đ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 là các phần của bàn của tôi đã bị hỏng. Tôi cũng không thể 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 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ư
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ũ. 0 là bạn của bạn ở đây. Ví dụ.
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ụ:
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
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 1 A 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ẹ.
HOẶC 3 gọi một hàm bắt đầu bằngMột số đề xuất khác để sử dụng
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
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:
Đã 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 4 vì tôi đã gặp lỗi chỉ đọc mà không sử dụng tham số toàn cầu. 08.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
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 5 của tôi có cùng tên với tên 5 khác.Thay đổi tên 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
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 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: 1Bấ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.
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
Ô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ụ. 2Đã trả lời ngày 5 tháng 9 năm 2018 lúc 17:50Sep 5, 2018 at 17:50
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 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 (). 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 9, 0 và 1 và giống như 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 3 trong tùy chọn cấu hình MySQL không hoạt động với bạn. 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
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. |