ข้อผิดพลาดในการเชื่อมต่อกับฐานข้อมูล mysql


9

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

Mysql.mysql(): Couldn't connect to SQL-server: Lost connection to MySQL server at 'reading authorization packet', system error: 2

ฉันได้อ่านข้อมูลที่นี่: http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.htmlและยังแสดงความคิดเห็นต่อข้อผิดพลาดhttp://bugs.mysql.com/bug .php?

มีจำนวนการเชื่อมต่อที่ถูกยกเลิกค่อนข้างมากตามที่คุณเห็น:

mysql> แสดงสถานะทั่วโลกเช่น 'Aborted_connects';
+ ------------------ + ------- +
| Variable_name | ค่า |
+ ------------------ + ------- +
| Aborted_connects | 2540 |
+ ------------------ + ------- +

ฉันเพิ่มการหมดเวลาจาก 5 เป็น 15 วินาที:

mysql> แสดงตัวแปรเช่น 'connect_timeout';
+ ----------------- + ------- +
| Variable_name | ค่า |
+ ----------------- + ------- +
| connect_timeout | 15 |
+ ----------------- + ------- +

แต่สิ่งนี้ไม่ได้ช่วย ข้อเสนอแนะวิธีการแก้ปัญหานี้? มันทำให้การทำงานของฐานข้อมูลช้าลงอย่างน่ากลัวเมื่อมันโดยเฉลี่ยต้องพยายามเชื่อมต่อ 5 ครั้งก่อนที่มันจะทำงาน

ฉันยังไม่ได้พยายามเปิดการเชื่อมต่อตลอดอายุการใช้งานของแอปพลิเคชันจะดีกว่าไหม ฉันจะป้องกันไม่ให้การเชื่อมต่อปิดได้อย่างไร

หากช่วยให้คอมพิวเตอร์ที่มีปัญหาคือ Windows 7 32 บิตในขณะที่เซิร์ฟเวอร์ mysql อยู่บน Debian Linux


ฉันรู้ว่านี่เป็นผ้าพันแผลเท่านั้น แต่ URL รายงานข้อผิดพลาดระบุว่า: "ฉันได้แก้ไขปัญหาโดยเพิ่มตัวแปรส่วนกลางของ connect_timeout เป็น 30 วินาที" คุณต้องการลองใช้ค่าที่สูงขึ้นหรือไม่?
JoseK

1
ความสะดวกสบายเยือกเย็น แต่นี่เป็นคำถามที่เขียนได้ดี ทำตามบทความ Eric S. Raymond ที่ยอดเยี่ยม ... +1 ถึงคุณและขอให้โชคดี
gWaldo

@JoseK แน่นอนฉันสามารถลองได้ แต่ฉันสงสัยว่ามันจะสร้างความแตกต่างอย่างมากเนื่องจากฉันไม่เห็นการปรับปรุงโดยเพิ่มจาก 5 เป็น 15
Zitrax

นี่เป็นหนึ่งในตัวแปรที่ไม่มีการ จำกัด หรือไม่ถ้าตั้งค่าไว้ที่ 0
pjmorse

1
คุณแน่ใจหรือว่าไม่มีปัญหาการเชื่อมต่อระหว่างเครื่องบางทีเป็นปัญหาเครือข่าย
วอร์เนอร์

คำตอบ:


2

ดูรายละเอียดข้อผิดพลาดทั้งหมดในรายงานที่ฉันสงสัยว่ามีปัญหาด้านเครือข่ายหรือลูกค้าที่นี่ มีบางอย่างที่ทำให้เกิดความเสียหายหรือเพิ่มความล่าช้าในข้อมูล mysql มากเกินไป

ในเครือข่ายที่ชัดเจนทำการติดตามแบบ wireshark และตรวจสอบว่าบทสนทนานั้นเป็นอย่างไร ตรวจสอบให้แน่ใจว่าไม่มีการปรับสภาพการจราจรเกิดขึ้นทุกที่ ดูเหมือนว่าปัญหา 64 บิตเท่านั้นดังนั้นให้ตรวจสอบ 32 บิตบิลด์เพื่อให้แน่ใจว่าเป็นปัญหาเดียวกัน ตรวจสอบกล่อง Windows XP M $ ได้ทำสิ่งที่ขี้ขลาดไปยังเครือข่ายสแต็คใน Vista ซึ่งทำให้มันดูด - bit เวลา! เราไม่มีจุดสิ้นสุดของปัญหาเครือข่ายกับเครื่อง Vista และ Win7!

หากคุณจัดการร่องรอย wireshark โปรด pastebin และวางลิงก์ตามที่เราทุกคนต้องการดูฉันคิดว่า


คุณหมายถึงอะไรกับ 'ดูเหมือนว่าปัญหา 64 บิต'? นี่คือการติดตั้งแบบ 32 บิต และขอโทษที่ฉันพูดถึง Vista นี่คือ Win7 แก้ไขคำอธิบาย
Zitrax

ฉันไม่คุ้นเคยกับการดีบักด้วย wireshark แต่บางสิ่งที่แปลกสำหรับฉันมีแพ็กเก็ต RST ที่ทำเครื่องหมายสีแดงสองสามตัวและการส่งผ่าน TCP ซ้ำและเวลาของแพ็กเก็ตบางส่วนนั้นเป็นลบเช่น -257.3 วินาที
Zitrax

คุณสามารถใช้สวิตช์อื่นได้เลยและทดสอบอีกครั้งได้ไหม ทำให้แตกต่างกันถ้าคุณมีหรือไม่ หากคุณสามารถ pastebin หรือ zip และทำให้การถ่ายโอนข้อมูล wireshark เราสามารถดู ...
Khushil

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