MySQL Error 2013 หมายถึงอะไร


14

ฉันใช้ mysqldump บนเซิร์ฟเวอร์ mysql ใน cron (สำรอง) และฉันได้รับข้อความเตือนเช่น

mysqldump: Got error: 2013: Lost connection to MySQL server during query when doing refresh

ข้อผิดพลาด MySQL นี้ (2013) หมายถึงอะไร? ฉันทำ googling เสร็จแล้วและมันก็ไม่ค่อยมีประโยชน์เท่าไหร่ ...

สำหรับเร็กคอร์ด mysqldump กำลังเชื่อมต่อกับเซิร์ฟเวอร์ MySQL Slave มันเคยทำงานเมื่อมันถูกเชื่อมต่อกับมาสเตอร์

คำตอบ:


4

สิ่งนี้อาจไม่ดีมาก2013หมายความว่าเธรดที่ให้บริการmysqldumpกระบวนการเสียชีวิต อาจเป็นเพราะเครื่องมือ InnoDB บนเซิร์ฟเวอร์ตรวจพบข้อผิดพลาดขณะอ่านไฟล์ฐานข้อมูลสำหรับฐานข้อมูลของคุณ ตามที่mysqldumpได้อ่านหน้าทั้งหมดสำหรับฐานข้อมูลทั้งหมดของคุณเพื่อทำการสำรองข้อมูลมีแนวโน้มที่จะก่อให้เกิดความเสียหายแฝงที่แอปพลิเคชันของคุณอาจหลีกเลี่ยงในระหว่างกิจกรรมวันต่อวัน

หากคุณเรียกใช้mysqlคำสั่งของคุณและมันรายงานว่า id การเชื่อมต่อของคุณเป็นจำนวนที่ต่ำเซิร์ฟเวอร์ของคุณก็อาจจะรีสตาร์ทตัวเอง คุณควรตรวจสอบmysqld.logทันทีเพื่อหาสาเหตุ


ขอบคุณที่ยอมรับคำตอบของฉันคุณพบอะไรใน mysqld.log ของคุณ
Dave Cheney

ฉันเห็นรหัสการเชื่อมต่อต่ำซึ่งหมายความว่าเซิร์ฟเวอร์รีสตาร์ท ฉันยังไม่แน่ใจว่าทำไม ฉันจะตรวจสอบ 'การทุจริตแฝงได้อย่างไร
Rory

1
หากเซิร์ฟเวอร์ mysql ของคุณรีสตาร์ทตัวเองจะมีขนาดใหญ่ (อ่านหน้าการดีบัก) ในบันทึก mysql
Dave Cheney

11

2013 หมายความว่าการเชื่อมต่อกับเซิร์ฟเวอร์หายไป มีความเป็นไปได้หลายอย่างในมือ:

  1. ใครบางคนKILLแก้ไขแบบสอบถาม
  2. ปัญหาเครือข่ายทำให้การเชื่อมต่อตาย
  3. เซิร์ฟเวอร์หยุดทำงาน / เสียชีวิต
  4. การเชื่อมต่อของคุณไม่ได้ใช้งานwait_timeoutและถูกฆ่า
  5. ลูกค้าไม่ได้ดึงข้อมูลเร็วพอnet_wait_timeoutและถูกฆ่า

1
มันเป็นnet_write_timeoutหรือnet_wait_timeoutหรือไม่
ks1322

ยังnet_read_timeout= 600และconnect_timeout= 60

0

คุณเปิดการเชื่อมต่อทำการดำเนินการที่มีความยาวไม่เกี่ยวข้องกับการเชื่อมต่อแล้วลองสอบถามหรือไม่ ถ้าเป็นกรณีนั้น mysql อาจจะตัดการเชื่อมต่อเนื่องจาก wait_timeout เพียงเชื่อมต่อใหม่ก่อนที่จะออกแบบสอบถาม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.