บางผู้ใช้ประสบกับข้อความแสดงข้อผิดพลาด "Error: MySQL shutdown unexpectedly" เมื่อพยายามเริ่มต้นเซิร์ฟเวอร์ MySQL ผ่านแผงควบคุมเว็บเซิร์ฟเวอร์ XAMPP ในบางกรณี ปัญหานี้ปรากฏหลังจากที่ผู้ใช้ติดตั้ง XAMPP ใหม่บนคอมพิวเตอร์ของพวกเขา เหตุที่เกิดเหตุการณ์นี้คือเมื่อไฟล์ MySQL เสียหายหรือเสียหาย ซึ่งในกรณีนี้คุณจะต้องใช้โฟลเดอร์สำรองข้อมูลที่สามารถพบได้ในไดเรกทอรี mysql ในบทความนี้ เราจะพาคุณผ่านกระบวนการแก้ไขข้อความข้อผิดพลาดดังกล่าว เพื่อที่คุณจะไม่ต้องกังวลอะไรเลย

การใช้งานเว็บเซิร์ฟเวอร์ XAMPP นั้นสะดวกและง่าย แต่ก็มีปัญหาบ้าง เช่น ข้อความแสดงข้อผิดพลาด localhost refusing to connect และอื่นๆ ปรากฏว่าผู้ใช้มักคิดว่าฐานข้อมูลของพวกเขาเสียหายหลังจากเผชิญกับปัญหาที่กล่าวมา อย่างไรก็ตาม ไม่ใช่เช่นนั้น และคุณไม่ต้องกังวลเกี่ยวกับการสูญเสียข้อมูลของคุณ เนื่องจากปัญหานี้สามารถหลีกเลี่ยงได้อย่างง่ายดาย นอกจากนี้ยังมีโซลูชัน浮出水面บนอินเทอร์เน็ตที่ขอให้ผู้ใช้ลบไฟล์ ibdata1 ภายในไดเรกทอรี mysql ไฟล์ ibdata1 โดยพื้นฐานแล้วคือ tablespace ของระบบสำหรับเครื่องยนต์จัดเก็บข้อมูล MySQL ที่เรียกว่า InnoDB แม้ว่าการลบไฟล์นี้อาจแก้ไขปัญหาในบางกรณี แต่ก็มีแนวโน้มมากที่จะทำให้ฐานข้อมูลของคุณใช้ไม่ได้ ดังนั้น จึงไม่แนะนำจริงๆ เว้นแต่คุณไม่กังวลเกี่ยวกับข้อมูลที่จัดเก็บในฐานข้อมูลของคุณ
เพื่อแก้ไขปัญหานี้ เราจะใช้โฟลเดอร์สำรองข้อมูลภายในไดเรกทอรี mysql เพื่อแทนที่เนื้อหาของโฟลเดอร์ data นอกจากนี้ หากบริการ MySQL กำลังทำงานก่อนที่จะเกิดข้อผิดพลาด สิ่งนั้นก็อาจก่อให้เกิดปัญหาในบางกรณี ในสถานการณ์เช่นนั้น คุณจะต้องหยุดบริการ และจากนั้นดูว่าปัญหาได้รับการแก้ไขหรือไม่ ด้วยเหตุนี้ เรามาเริ่มต้นและแสดงวิธีแก้ไขปัญหานี้โดยไม่มีการล่าช้าอีกต่อไป
ใช้โฟลเดอร์สำรองข้อมูล MySQL
ปรากฏว่าเมื่อคุณเผชิญกับข้อความข้อผิดพลาด MySQL shutdown unexpectedly คุณจะต้องใช้ไฟล์สำรองข้อมูลที่จัดเก็บอยู่ในโฟลเดอร์สำรองข้อมูลของไดเรกทอรี mysql นี่รวมอยู่ใน XAMPP และกระบวนการนั้นง่ายและตรงไปตรงมา ก่อนที่เราจะดำเนินการต่อ แนะนำให้คุณสร้างสำรองข้อมูลฐานข้อมูลของคุณในกรณีที่มีอะไรผิดปกติ เพื่อที่คุณจะไม่สูญเสียข้อมูลของคุณ
ในวิธีนี้ เราจะเพียงแค่แทนที่เนื้อหาของโฟลเดอร์ data ภายในไดเรกทอรี mysql ด้วยเนื้อหาของโฟลเดอร์สำรองข้อมูล การทำเช่นนี้จะไม่ทำให้คุณสูญเสียข้อมูล ดังนั้นคุณไม่ต้องกังวลเกี่ยวกับเรื่องนั้น ด้วยเหตุนี้ โปรดปฏิบัติตามคำแนะนำที่ให้ไว้ด้านล่างเพื่อทำสิ่งนี้:
- ก่อนอื่น ให้ปิดเว็บเซิร์ฟเวอร์ XAMPP ให้หมดสิ้น
- เมื่อคุณปิดเว็บเซิร์ฟเวอร์แล้ว ให้ไปที่โฟลเดอร์ที่ติดตั้ง xampp โดยค่าเริ่มต้น คุณจะพบ xampp ที่ "C:\xampp".

- ภายในโฟลเดอร์ xampp ให้เปิดโฟลเดอร์ mysql.

- ตอนนี้ ในโฟลเดอร์ mysql ให้ค้นหาโฟลเดอร์ data และ đổiชื่อเป็น data_old.
- เมื่อคุณทำแล้ว ให้คลิกขวา และจากเมนูดรอปดาวน์ ให้สร้างโฟลเดอร์ใหม่โดยไปที่ New > Folder ในไดเรกทอรี mysql ตั้งชื่อโฟลเดอร์ที่สร้างใหม่นี้ว่า data.
- หลังจากสร้างโฟลเดอร์ data แล้ว ให้เปิดโฟลเดอร์สำรองข้อมูล คัดลอกเนื้อหาของโฟลเดอร์ backup และวางไว้ภายในโฟลเดอร์ data ที่สร้างใหม่
- เมื่อคุณทำแล้ว ให้กลับไปที่โฟลเดอร์ data_old และคัดลอกโฟลเดอร์ฐานข้อมูลของคุณจากที่นั่นไปยังโฟลเดอร์ data ใหม่
หมายเหตุ: ข้ามโฟลเดอร์ mysql, performance_schema และ phymyadmin จากโฟลเดอร์ data_old.

- หลังจากที่คุณทำแล้ว ให้คัดลอกไฟล์ ibdata1 จากโฟลเดอร์ data_old และแทนที่ด้วยไฟล์ที่อยู่ภายในโฟลเดอร์ data ใหม่
- ตอนนี้ที่คุณทำทั้งหมดแล้ว ให้ไปรัน XAMPP ในฐานะผู้ดูแลระบบ เมื่อแผงควบคุม XAMPP เปิดอยู่ ให้ลองเริ่มต้นเซิร์ฟเวอร์ MySQL เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่
ซ่อมแซมฐานข้อมูล MySQL ด้วย Shell
นอกจากวิธีข้างต้นแล้ว คุณยังสามารถลองแก้ไขปัญหาโดยการพยายามซ่อมแซมเซิร์ฟเวอร์ mysql โดยใช้ Shell ที่ตั้งอยู่ภายในแผงควบคุม XAMPP หากคุณกำลังมองหาวิธีการแบบบรรทัดคำสั่ง นี่คือโซลูชันสำหรับคุณ ที่นี่ เราจะพยายามเปิดเซิร์ฟเวอร์ mysql โดยใช้ shell ก่อน จากนั้นพยายามซ่อมแซมฐานข้อมูล mysql ในหน้าต่าง shell อีกอันหนึ่ง เพื่อทำเช่นนี้ ให้ปฏิบัติตามคำแนะนำที่ให้ไว้ด้านล่าง:
- ก่อนอื่น ให้เปิดแผงควบคุม XAMPP
- จากแผงควบคุม XAMPP ให้เปิด shell โดยการคลิกปุ่ม Shell ที่ให้ไว้.

- เมื่อเปิด shell แล้ว ให้ป้อนคำสั่งต่อไปนี้เพื่อเริ่ม mysql:
mysqld --console --skip-grant-tables --skip-external-locking
- หลังจากนั้น ให้เปิดหน้าต่าง shell อีกอันหนึ่งจากแผงควบคุม
- ในหน้าต่าง shell ใหม่ ให้คัดลอกและวางคำสั่งต่อไปนี้เพื่อซ่อมแซมฐานข้อมูล:
mysqlcheck -r --databases mysql --use-frm
- เมื่อคุณทำแล้ว ให้หยุด mysql จากหน้าต่าง shell แรก และจากนั้นปิดหน้าต่าง shell ทั้งสอง
- หลังจากนั้น ให้ไปรีสตาร์ท mysql เพื่อดูว่าปัญหายังคงอยู่หรือไม่
หยุดบริการ MySQL
ปรากฏว่าปัญหานี้อาจเกิดจากบริการ MySQL ในบางกรณี สิ่งนี้เกิดขึ้นเมื่อบริการ MySQL กำลังทำงานก่อนที่คุณจะพยายามเริ่มต้นเซิร์ฟเวอร์ mysql ผ่านแผงควบคุม XAMPP ในกรณีเช่นนั้น คุณจะต้องเพียงแค่หยุดบริการ MySQL จากหน้าต่าง Windows Services บริการที่ทำงานบนระบบของคุณบางครั้งอาจก่อให้เกิดปัญหาต่างๆ เมื่อทำงานผิดปกติ เช่น การเชื่อมต่อกับบริการ Windows ล้มเหลว และอื่นๆ จึงไม่มีอะไรต้องกังวลจริงๆ ด้วยเหตุนี้ โปรดปฏิบัติตามคำแนะนำด้านล่างเพื่อหยุดบริการ:
- ก่อนอื่น ให้เปิดกล่องโต้ตอบ Run โดยการกดปุ่ม Windows key + R บนคีย์บอร์ดของคุณ
- ในกล่องโต้ตอบ Run ให้พิมพ์ services.msc และจากนั้นกด Enter.

- คุณจะเห็นรายการบริการทั้งหมดบนระบบของคุณในหน้าต่าง Services ที่เปิดขึ้น
- จากรายการบริการ ให้ค้นหาบริการ MySQL และจากนั้นคลิกขวาที่มัน จากเมนูดรอปดาวน์ ให้เลือก Stop.
- ทางเลือกอื่น คุณสามารถเน้นบริการ MySQL และคลิกปุ่ม Stop ด้านซ้ายมือ.

- รอจนกว่าบริการจะหยุด หลังจากนั้น ให้ลองเริ่มต้นเซิร์ฟเวอร์ MySQL ด้วยตนเองจากแผงควบคุม XAMPP เพื่อดูว่าปัญหายังคงเกิดขึ้นหรือไม่
เปลี่ยนพอร์ตไคลเอนต์และเซิร์ฟเวอร์
ในบางสถานการณ์ ปัญหานี้อาจเกิดจากพอร์ตที่ถูกใช้โดยเซิร์ฟเวอร์ MySQL สิ่งนี้อาจเกิดขึ้นเมื่อพอร์ตที่เซิร์ฟเวอร์ MySQL พยายามใช้ถูกใช้โดยบริการอื่นแล้ว หรือเมื่อพอร์ตดังกล่าวถูกบล็อกบนระบบของคุณ เพื่อแก้ไขปัญหา คุณจะต้องเปลี่ยนพอร์ตไคลเอนต์และเซิร์ฟเวอร์จากไฟล์ my.ini เพื่อทำเช่นนี้ โปรดปฏิบัติตามคำแนะนำที่ให้ไว้ด้านล่าง:
- ก่อนอื่น ให้เปิด Windows Explorer และไปที่ไดเรกทอรีการติดตั้ง xampp.

- ภายในโฟลเดอร์ xampp ให้ไปที่ mysql > bin.
- จากนั้น ในโฟลเดอร์ bin ให้เปิดไฟล์ my.ini ในสมุดบันทึก สามารถทำได้โดยการคลิกขวาที่ไฟล์และเลือก Open with > Notepad.
- เมื่อเปิดไฟล์ my.ini แล้ว ให้ค้นหา client และ server port ตามที่แสดงในรูปภาพด้านล่างและเปลี่ยนพวกเขา.

- หลังจากนั้น ให้บันทึกไฟล์และเปิด XAMPP อีกครั้ง
- สุดท้าย ให้ลองเริ่มต้นเซิร์ฟเวอร์ MySQL เพื่อดูว่าข้อผิดพลาดยังคงอยู่หรือไม่