MySQL Workbench: จะทำให้การเชื่อมต่อมีชีวิตชีวาได้อย่างไร


160

รหัสข้อผิดพลาด: 2013. สูญเสียการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ระหว่างการสืบค้น

ฉันใช้ MySQL Workbench นอกจากนี้ฉันกำลังใช้ชุดของเม็ดมีดรวมทั้งหมด 1,000 บรรทัด (เช่นINSERT INTO mytable SELECT * FROM mysource1; INSERT INTO mytable SELECT * FROM mysource2;...mysource3...mysource4คูณด้วย 1,000 ครั้ง) แต่ละชุดใช้เวลานานพอสมควรบางส่วนก็มากกว่า 600 วินาที

ฉันจะกำหนดค่า workbench ให้ทำงานต่อเนื่องข้ามคืนโดยไม่หยุดและไม่ขาดการเชื่อมต่อได้อย่างไร

คำตอบ:


343

จากที่เก็บถาวรอินเทอร์เน็ตที่ใช้ไม่ได้ในขณะนี้:

ไปที่ Edit -> Preferences -> SQL Editor และตั้งค่าเป็นพารามิเตอร์ที่สูงกว่านี้: การเชื่อมต่อ DBMS หมดเวลาอ่าน (เป็นวินาที) ตัวอย่างเช่น: 86400

ปิดและเปิด MySQL Workbench อีกครั้ง ทำลายแบบสอบถามก่อนหน้าของคุณที่อาจทำงานอยู่และเรียกใช้แบบสอบถามอีกครั้ง


5
มีข้อผิดพลาดใน MySQL Workbench ทุกรุ่นที่เกิน 6.0.x บน Mac OS: stackoverflow.com/a/37890150/1014813
lepix

6
สิ่งนี้ใช้งานได้สำหรับฉัน แต่ต้องรีสตาร์ทโปรแกรมแก้ไขเพื่อให้มีผล
cucu8

@lepix ข้อผิดพลาดนี้ได้รับการแก้ไขหรือไม่
posfan12

2
จำเป็นต้องรีสตาร์ทโปรแกรมแก้ไขเพื่อให้มีผลหลังจากเปลี่ยนค่า
philip oghenerobo balogun

46

หากคุณใช้การเชื่อมต่อแบบ "TCP / IP มาตรฐานผ่าน SSH" ภายใต้ "การตั้งค่า" -> "อื่น ๆ " จะมีช่อง "SSH KeepAlive" ฉันใช้เวลาพอสมควรในการค้นหา :(


ทำไมคุณถึงทำซ้ำคำตอบ?
Jan Doggen

19
@JanDoggen ฉันไม่เห็นคำตอบอื่นใดที่ชี้ว่าใน MySQL Workbench คุณสามารถเปลี่ยน "SSH KeepAlive" ซึ่งโดยค่าเริ่มต้นคือ 0 => ปิดการใช้งาน ฉันเพียงดูคำตอบที่แนะนำให้ตั้งค่า SSH การเปลี่ยนแปลงของเซิร์ฟเวอร์พ ...
Ljubitel

ขอบคุณสำหรับการชี้สิ่งนี้เนื่องจากการตั้งค่าที่นี่จะแทนที่ไฟล์กำหนดค่าไคลเอนต์ ~ / .ssh / config และ / etc / ssh / ssh_config นี่เป็นสิ่งที่ต้องมีสำหรับบรอดแบนด์มือถือ
ร็อดนีย์

คุณช่วยเพิ่มตัวอย่างของมูลค่าเพื่อใช้ในคำตอบของคุณได้ไหม? คุณแนะนำอะไรเช่น1800วินาที?
อัล

1
@AL ขึ้นอยู่กับบริบทของคุณ ในกรณีของฉันการเชื่อมต่อ SSH หมดอายุใน 3 นาที (180 วินาที) ดังนั้นฉันจึงตั้ง SSH KeepAlive เป็น 30 วินาที
Ljubitel

15

ใน 5.2.47 (อย่างน้อยใน mac) ไปที่ตำแหน่งของการตั้งค่าคือ: MySQLWorkbench-> Preferences-> SQL Editor

จากนั้นคุณจะเห็นทั้งสองอย่าง:

ช่วงเวลาแบบ keep-alive การเชื่อมต่อ DBMS (เป็นวินาที): การเชื่อมต่อ DBMS ที่อ่านหมดเวลา (เป็นวินาที):

หลังคือที่ที่คุณต้องการเพิ่มขีด จำกัด จาก 600 เป็นอย่างมาก


ฉันตั้งค่าการเชื่อมต่อ DBMS ของฉันให้หมดเวลาอ่านเป็น 86400 วินาทีหลังจากประมาณ 7200 วินาทีของการเรียกใช้แบบสอบถามฉันยังคงได้รับข้อผิดพลาด 2013 ใครรู้อะไรเกี่ยวกับมันบ้าง
IndexOutOfDevelopersException

12

ในกรณีของฉันหลังจากพยายามตั้งค่าการหมดเวลา SSH บนบรรทัดคำสั่งและในการตั้งค่าเซิร์ฟเวอร์ท้องถิ่น วิธีการแก้ปัญหา @Lububitel แก้ไขปัญหาให้ฉันแล้ว

สิ่งหนึ่งที่ควรทราบคือใน Workbench 6.2 การตั้งค่าอยู่ภายใต้ขั้นสูง

ป้อนคำอธิบายรูปภาพที่นี่


2
ใน 6.3 Advanced ได้ถูกเปลี่ยนชื่อเป็น Others
Richard

2

หากคุณใช้การเชื่อมต่อแบบ "TCP / IP มาตรฐานผ่าน SSH" อาจเป็นเซิร์ฟเวอร์ ssh ที่หมดเวลาในกรณีนี้คุณจะต้องแก้ไขการตั้งค่าที่เกี่ยวข้องกับ TCPKeepAlive ใน / etc / ssh / sshd_config บนเซิร์ฟเวอร์ของคุณ .


2

ฉันได้รับข้อผิดพลาดนี้ในปี 2013 และไม่มีการเปลี่ยนแปลงการตั้งค่าใด ๆ ข้างต้นที่ทำอะไรเพื่อแก้ไขปัญหา ฉันเริ่มบริการ mysql ใหม่และปัญหาก็หายไป


2

ตกลง - ดังนั้นปัญหานี้ทำให้ฉันคลั่งไคล้ - v 6.3.6 บน Ubuntu Linux วิธีการแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉัน การเชื่อมต่อกับเซิร์ฟเวอร์ localhost mysql ทำงานได้ดีก่อนหน้านี้เสมอ การเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลหมดเวลาเสมอ - หลังจากประมาณ 60 วินาทีบางครั้งหลังจากใช้เวลาน้อยลงบางครั้งก็มากขึ้น

สิ่งที่ใช้งานได้ในที่สุดสำหรับฉันคือการอัพเกรด Workbench เป็น 6.3.9 - ไม่มีการเชื่อมต่อที่ลดลงอีกต่อไป


1

ฉันมีปัญหาที่คล้ายกันซึ่งCREATE FULLTEXTหมดเวลาหลังจาก 30 วินาที:

ความผิดพลาด

การตั้งค่าการเชื่อมต่อช่วงเวลาการอ่าน DBMS เป็น 0 ภายใต้แก้ไข -> การตั้งค่า -> ตัวแก้ไข SQL แก้ไขปัญหาให้ฉัน:

แก้ไขข้อผิดพลาด

นอกจากนี้ฉันไม่ต้องรีสตาร์ท mysql workbench เพื่อให้ทำงานได้


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