เนื่องจากไม่มีคำตอบข้างต้นอธิบายถึงสิ่งที่เกิดขึ้นจริงฉันตัดสินใจที่จะพูดสอดและนำรายละเอียดเพิ่มเติมมาที่ปัญหานี้
ใช่ทางออกคือการรันคำสั่ง MySQL Upgrade ดังนี้: mysql_upgrade -u root -p --force
แต่เกิดอะไรขึ้น
สาเหตุที่แท้จริงสำหรับปัญหานี้คือความเสียหายของperformance_schema
ซึ่งอาจเกิดจาก:
- ความเสียหายจากออร์แกนิก (ปริมาณมากไป kaboom, ข้อผิดพลาดของเครื่องยนต์, ปัญหาเคอร์เนลไดรเวอร์ ฯลฯ )
- ความเสียหายระหว่าง mysql Patch (ไม่เคยได้ยินมาก่อนว่าจะเกิดขึ้นในระหว่างการแก้ไข mysql โดยเฉพาะสำหรับการอัพเกรดเวอร์ชั่นใหญ่ ๆ )
- "ฐานข้อมูลการลดลง performance_schema" อย่างง่ายจะทำให้เกิดปัญหานี้และมันจะแสดงอาการแบบเดียวกันกับว่ามันได้รับความเสียหาย
ปัญหานี้อาจจะได้รับในปัจจุบันในฐานข้อมูลของคุณแม้กระทั่งก่อนที่แพทช์ แต่สิ่งที่เกิดขึ้นใน MySQL 5.7.8 โดยเฉพาะคือว่าธงshow_compatibility_56
เปลี่ยนค่าเริ่มต้นจากการถูกเปิดโดยค่าเริ่มต้นไปON
OFF
การตั้งค่าสถานะนี้ควบคุมการทำงานของเอ็นจินสำหรับเคียวรีสำหรับการตั้งค่าและการอ่านตัวแปร (เซสชันและโกลบอล) บน MySQL เวอร์ชันต่างๆ
เนื่องจาก MySQL 5.7+ เริ่มอ่านและเก็บตัวแปรเหล่านี้performance_schema
แทนการเปิดinformation_schema
แฟล็กนี้จึงถูกนำมาใช้ในON
การเผยแพร่ครั้งแรกเพื่อลดรัศมีการระเบิดของการเปลี่ยนแปลงนี้และเพื่อให้ผู้ใช้ทราบเกี่ยวกับการเปลี่ยนแปลงและทำความคุ้นเคยกับมัน
ตกลง แต่ทำไมการเชื่อมต่อจึงล้มเหลว เนื่องจากขึ้นอยู่กับไดรเวอร์ที่คุณใช้ (และการกำหนดค่า) มันอาจจบลงด้วยการรันคำสั่งสำหรับการเชื่อมต่อใหม่ทุกครั้งที่เริ่มต้นไปยังฐานข้อมูล (เช่นshow variables
เป็นต้น) เนื่องจากหนึ่งในคำสั่งเหล่านี้สามารถพยายามเข้าถึงความเสียหายperformance_schema
การเชื่อมต่อทั้งหมดจึงยกเลิกก่อนที่จะเริ่มต้นอย่างสมบูรณ์
ดังนั้นโดยสรุปคุณอาจ (เป็นไปไม่ได้ที่จะบอกได้ในตอนนี้) ว่ามีการperformance_schema
สูญหายหรือเสียหายก่อนการปะแก้ แพตช์เป็น 5.7.8 จากนั้นบังคับให้เอ็นจิ้นอ่านตัวแปรของคุณออกจากperformance_schema
(แทนที่จะเป็นinformation_schema
ตำแหน่งที่อ่านจากเนื่องจากมีการเปลี่ยนสถานะON
) เนื่องจากperformance_schema
เสียหายการเชื่อมต่อจึงล้มเหลว
การรันการอัพเกรด MySQL เป็นวิธีการที่ดีที่สุดแม้จะมีการหยุดทำงาน การเปิดใช้งานการตั้งค่าสถานะเป็นหนึ่งตัวเลือก แต่มันมาพร้อมกับชุดของความหมายตามที่ชี้ไปที่เธรดนี้แล้ว
ทั้งสองควรทำงาน แต่น้ำหนักผลที่ตามมาและรู้ว่าตัวเลือกของคุณ :)
5.7.8-rc
เวอร์ชันใหม่และกู้คืนจากการสำรองข้อมูลเต็มรูปแบบของฐานข้อมูล