การปิดระบบ MySQL โดยไม่คาดคิด: วิธีแก้ไขข้อผิดพลาด XAMPP MySQL
เผยแพร่แล้ว: 2024-03-21ข้อผิดพลาดรันไทม์เป็นเรื่องปกติทั้งในหมู่ผู้ใช้เซิร์ฟเวอร์ที่ใช้งานจริงและผู้ใช้เซิร์ฟเวอร์ภายในเครื่อง “การปิดระบบ MySQL โดยไม่คาดคิด” เป็นข้อความที่นักพัฒนา วิศวกร และผู้ดูแลระบบฐานข้อมูลจำนวนมากพบเจอเมื่อใช้ XAMPP เป็นสภาพแวดล้อมการพัฒนาในเครื่อง สถานการณ์นี้อาจเป็นเรื่องที่น่ารำคาญ แต่ก็ไม่ใช่ปัญหาที่เกิดขึ้นได้ยาก ข่าวดีก็คือ มันสามารถแก้ไขได้ เราได้รับหลังของคุณที่นี่
ในคู่มือนี้ เราจะพูดถึงสาเหตุที่คุณได้รับข้อความ “ปิดระบบ MySQL โดยไม่คาดคิด” และวิธีแก้ไขข้อผิดพลาด XAMPP MySQL นี้
สิ่งสำคัญคือต้องเริ่มต้นด้วยการพูดคุยถึงต้นตอของปัญหา แต่ก่อนอื่น มาเรียนรู้เพิ่มเติมเกี่ยวกับ XAMPP กันก่อน
ทำความเข้าใจพื้นฐานของ XAMPP
XAMPP เป็นแพ็คเกจโซลูชันเว็บเซิร์ฟเวอร์ข้ามแพลตฟอร์มแบบโอเพ่นซอร์สและฟรี มันทำงานบนระบบปฏิบัติการที่แตกต่างกัน เช่น Windows, macOS และ Linux เพื่อสร้างและจัดการสภาพแวดล้อมเว็บเซิร์ฟเวอร์ในเครื่อง
XAMPP ช่วยให้ผู้ใช้ทดสอบคุณสมบัติใหม่ รหัสแก้ไขข้อบกพร่อง และตรวจสอบให้แน่ใจว่าโครงการของคุณทำงานได้อย่างราบรื่นในสภาพแวดล้อมที่แตกต่างกัน XAMPP จะให้คุณตั้งค่าซอฟต์แวร์ที่จำเป็นเพื่อใช้งานเว็บไซต์ WordPress ของคุณ
ทำให้เป็นตัวเลือกยอดนิยมในหมู่นักพัฒนา โดยเฉพาะผู้ที่ทำงานกับแอปพลิเคชันที่ใช้ PHP เช่น WordPress
XAMPP ย่อมาจาก:
X: ข้ามแพลตฟอร์ม
ตอบ: Apache HTTP Server ซึ่งเป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์ยอดนิยม
อ: MariaDB (เดิมชื่อ MySQL) คือระบบจัดการฐานข้อมูลสำหรับจัดเก็บข้อมูลเว็บไซต์
P: PHP ซึ่งเป็นภาษาสคริปต์ที่ใช้สำหรับการพัฒนาเนื้อหาเว็บแบบไดนามิก
ป: Perl คือภาษาโปรแกรมที่สามารถใช้สำหรับการพัฒนาเว็บและงานอื่นๆ
หากมีแนวคิดที่ดีกว่าเกี่ยวกับระบบ เราจะมาหารือเกี่ยวกับสาเหตุของข้อผิดพลาดนี้
ข้อมูลเบื้องต้นเกี่ยวกับข้อผิดพลาดการปิดระบบ MySQL ใน XAMPP
ข้อผิดพลาด XAMPP “การปิดระบบ MySQL โดยไม่คาดคิด” บ่งชี้ว่าบริการ MySQL ภายในสภาพแวดล้อมการพัฒนาของคุณหยุดทำงาน โดยไม่ต้องให้คุณหยุด MySQL ด้วยตนเอง ซึ่งคุณสามารถทำได้ด้วยเหตุผลหลายประการ เช่น ระหว่างที่เซิร์ฟเวอร์รีสตาร์ท การปิดระบบโดยไม่คาดคิดไม่ใช่สิ่งที่คุณมักคาดหวัง
เมื่อ MySQL หยุดทำงานโดยไม่คาดคิด เว็บไซต์ของคุณไม่สามารถสื่อสารกับฐานข้อมูลได้ นี่เป็นปัญหาสำคัญ โดยเฉพาะอย่างยิ่งสำหรับแพลตฟอร์มที่ขับเคลื่อนด้วยฐานข้อมูล เช่น WordPress ซึ่งต้องอาศัยการเชื่อมต่อฐานข้อมูลอย่างมากสำหรับการดำเนินงานทั้งหมด
ภายในอินเทอร์เฟซ XAMPP คุณอาจสังเกตเห็นข้อความแนะนำคุณตลอดการแก้ไขปัญหาข้อผิดพลาดนี้ โดยเฉพาะที่เน้นไว้ในบันทึกเหตุการณ์
การเปลี่ยนแปลงของข้อผิดพลาด XAMPP MySQL
เมื่อประสบปัญหาการปิดระบบ MySQL ใน XAMPP ข้อความใดข้อความหนึ่งเหล่านี้จะปรากฏบนหน้าจอของคุณ
- MySQL ปิดตัวลงโดยไม่คาดคิด
- ข้อผิดพลาด: ปิดระบบ MySQL โดยไม่คาดคิด
- บริการ MySQL ไม่เริ่มทำงาน
- ปัญหาเกี่ยวกับพอร์ต เช่น “พอร์ต 3306 ใช้งานโดยแอปพลิเคชันอื่น”
- บันทึกข้อความแสดงข้อผิดพลาดที่ชี้ไปยังปัญหาเกี่ยวกับไฟล์ ibdata
- กระบวนการ MySQL สิ้นสุดโดยไม่คาดคิด
รูปแบบต่างๆ เหล่านี้สามารถให้เบาะแสเกี่ยวกับสาเหตุและความช่วยเหลือในการแก้ไขปัญหาได้
เหตุผลเบื้องหลังข้อผิดพลาด XAMPP MySQL
การพบข้อผิดพลาด XAMPP MySQL “การปิดระบบ MySQL โดยไม่คาดคิด” อาจเกิดจากสาเหตุหลายประการ:
ข้อขัดแย้งของพอร์ต: MySQL ใช้ 3306 เป็นค่าเริ่มต้นหากแอปพลิเคชันคอมพิวเตอร์อื่นใช้พอร์ตนี้ MySQL จะไม่เริ่มทำงาน นำไปสู่การปิดระบบ
ตารางหรือไฟล์ข้อมูลเสียหาย: หากไฟล์ MySQL เสียหาย - เนื่องจากปัญหาดิสก์ การปิดระบบโดยไม่คาดคิด หรือสาเหตุอื่น - MySQL อาจไม่สามารถเริ่มทำงานได้
การกำหนดค่าไม่เพียงพอ: การกำหนดค่าที่ไม่ถูกต้องในไฟล์ my.ini ของคุณ เช่น ขนาดบัฟเฟอร์ไม่ถูกต้องหรือการจัดสรรหน่วยความจำ อาจทำให้เกิดความล้มเหลวในการเริ่มต้นระบบได้
ปัญหาเกี่ยวกับสิทธิ์: MySQL ต้องการสิทธิ์บางอย่างในการเข้าถึงไฟล์ข้อมูลและดำเนินการต่างๆหากสิทธิ์เหล่านี้ไม่ถูกต้อง การทำงานของ MySQL อาจหยุดลง
แก้ไขข้อผิดพลาด XAMPP “ปิดระบบ MySQL โดยไม่คาดคิด”
เราไปถึงส่วนการแก้ไขปัญหาที่รอคอยแล้ว คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีแก้ไขข้อผิดพลาด XAMPP: “การปิดระบบ MySQL โดยไม่คาดคิด”
1. ตรวจสอบความขัดแย้งของพอร์ต
สำหรับผู้ใช้ Windows:
- เปิดพร้อมท์คำสั่ง: กด Win + R → พิมพ์ cmd → กด Enter
- ใช้ netstat: พิมพ์ netstat -ano |findstr 3306 → กด Enter คำสั่งนี้ค้นหาแอปพลิเคชันใด ๆ ที่ใช้พอร์ต 3306 ซึ่งเป็นพอร์ตเริ่มต้นสำหรับ MySQL
- ตีความผลลัพธ์: หากคุณเห็นบรรทัดเอาต์พุต แสดงว่ามีบางอย่างใช้พอร์ต 3306 โปรดสังเกต PID (Process ID)ที่ท้ายบรรทัด เนื่องจากคุณจะต้องใช้เพื่อระบุแอปพลิเคชันที่ขัดแย้งกัน
สำหรับผู้ใช้ macOS/Linux:
- เปิดเทอร์มินัล
- ใช้ lsof: พิมพ์ lsof -i :3306 → กด Enterคำสั่งนี้แสดงรายการไฟล์ที่เปิดและแอปพลิเคชันที่เกี่ยวข้องโดยใช้พอร์ต 3306
- อ่านผลลัพธ์: หากคำสั่งส่งคืนข้อมูล แสดงว่าพอร์ต 3306 ใช้งานอยู่สังเกตชื่อแอปพลิเคชันหรือPID ที่ให้ไว้
หลังจากระบุแอปพลิเคชันโดยใช้พอร์ต 3306 แล้ว ให้แก้ไขปัญหาโดยการเปลี่ยนพอร์ตของแอปพลิเคชันที่ขัดแย้งหรือพอร์ต MySQL
ตัวเลือกที่ 1: ใช้ PID หรือชื่อแอปพลิเคชันที่คุณจดบันทึกไว้ก่อนหน้านี้เพื่อค้นหาแอปพลิเคชันที่ขัดแย้งกัน ค้นหาการตั้งค่าการกำหนดค่าหรือไฟล์สำหรับแอปพลิเคชัน ค้นหาการตั้งค่าหมายเลขพอร์ต (ซึ่งควรตั้งค่าเป็น 3306) และเปลี่ยนเป็นหมายเลขพอร์ตอื่น บันทึกการเปลี่ยนแปลงของคุณ
ตัวเลือกที่ 2: เปลี่ยนพอร์ตของ MySQL ใน XAMPP: เปิด ไฟล์ my.ini ที่อยู่ในโฟลเดอร์ XAMPP MySQL ของคุณ ค้นหาบรรทัดที่ระบุพอร์ต (โดยปกติคือพอร์ต=3306) แล้วเปลี่ยนเป็นพอร์ตว่างรีสตาร์ท MySQL หลังจากทำการเปลี่ยนแปลงนี้
2. ซ่อมแซมตารางหรือไฟล์ข้อมูลที่เสียหาย
ดังที่เราทราบมาว่าตาราง MySQL หรือไฟล์ข้อมูลภายใน XAMPP อาจเสียหาย ทำให้เกิดปัญหาการปิดระบบ MySQL โดยไม่คาดคิด ต่อไปนี้เป็นขั้นตอนในการระบุการทุจริต
- ไปที่ไดเร็กทอรีการติดตั้ง XAMPP → ไปที่โฟลเดอร์ mysql\ dataนี่คือที่ที่ MySQL เก็บไฟล์ฐานข้อมูล
- ค้นหาไฟล์ .err ซึ่งเป็นไฟล์บันทึกข้อผิดพลาดที่อาจมีข้อมูลเกี่ยวกับสิ่งที่ผิดพลาด
- ตรวจสอบไฟล์ที่ตั้งชื่อตามฐานข้อมูลของคุณ ใส่ใจกับขนาดไฟล์และวันที่แก้ไขที่ดูไม่ปกติ เนื่องจากสิ่งเหล่านี้อาจเป็นตัวบ่งชี้ถึงความเสียหายได้
หากคุณระบุไฟล์ที่เสียหายได้ นี่คือวิธีการแก้ไข
สำหรับตาราง MyISAM
- สำรองข้อมูลของคุณก่อน ทำสิ่งนี้ผ่าน phpMyAdmin ของ XAMPP โดยส่งออกฐานข้อมูลของคุณ หรือใช้คำสั่ง mysqldump หากคุณคุ้นเคยกับเครื่องมือบรรทัดคำสั่ง
- เปิดพรอมต์คำสั่ง (Windows) หรือเทอร์มินัล (macOS/Linux)
ไปที่โฟลเดอร์ bin ภายในไดเรกทอรี MySQL ของ XAMPP โดยพิมพ์ cd ตามด้วยเส้นทาง เช่น C:\xampp\mysql\bin สำหรับผู้ใช้ Windows
ในบรรทัดคำสั่ง ให้พิมพ์ myisamchk -r /path/to/your/table.MYI ตรวจสอบให้แน่ใจว่าได้แทนที่ /path/to/your/table.MYIด้วยพาธจริงไปยัง ตารางMyISAMที่คุณต้องการแก้ไข -r ย่อมาจาก “recover” โดยมีวัตถุประสงค์เพื่อซ่อมแซมโต๊ะของคุณ
การจัดการตาราง InnoDB
ตาราง InnoDB มีความซับซ้อนกว่าเล็กน้อยเนื่องจากการออกแบบ และไม่มีเครื่องมือที่ตรงไปตรงมาเช่น myisamchk สำหรับตารางเหล่านี้
- ดูที่ไฟล์ .err ภายในไดเร็กทอรี mysql\data เพื่อดูข้อความแสดงข้อผิดพลาดเกี่ยวกับตาราง InnoDBสิ่งเหล่านี้สามารถให้คำแนะนำเกี่ยวกับสิ่งผิดปกติได้
- ลองบังคับให้ฟื้นตัว บังคับให้ MySQL เข้าสู่โหมดการกู้คืน แก้ไข ไฟล์my.ini (Windows) หรือ my.cnf (ระบบปฏิบัติการอื่น)เพิ่มinnodb_force_recovery = 1ใต้ ส่วน[mysqld]จากนั้นรีสตาร์ท MySQL
หากสิ่งต่างๆ ดูไม่ดี ทางออกที่ดีที่สุดของคุณอาจเป็นการกู้คืนจากข้อมูลสำรอง หวังว่าคุณจะมีอันล่าสุดที่สามารถแทนที่ตารางหรือฐานข้อมูลที่เสียหายได้
3. ตรวจสอบและปรับการกำหนดค่า
- เปิด ไฟล์my.ini ด้วยโปรแกรมแก้ไขข้อความสิ่งสำคัญที่ต้องตรวจสอบ ได้แก่innodb_buffer_pool_size (การ เพิ่ม ขึ้นอาจช่วยประสิทธิภาพได้) และเส้นทางที่ระบุใน baseirและdatadir
- หากคุณพบการกำหนดค่าไม่ถูกต้องหรือสงสัยว่าการตั้งค่าอาจทำให้เกิดปัญหา ให้ทำการปรับเปลี่ยนที่จำเป็น ตัวอย่างเช่น หาก ตั้ง ค่า innodb_buffer_pool_size ต่ำเกินไปสำหรับเวิร์กโหลดของคุณ ให้เพิ่มตามนั้นสำรอง ไฟล์my.ini ดั้งเดิม ก่อนทำการเปลี่ยนแปลง เสมอ
4. ตั้งค่าการอนุญาตที่ถูกต้อง
MySQL หรือ XAMPP อาจไม่มีสิทธิ์ที่จำเป็นในการเข้าถึงไดเร็กทอรีและไฟล์ โดยเฉพาะหลังจากการอัพเดตหรือการเปลี่ยนแปลงซอฟต์แวร์ความปลอดภัย
- ตรวจสอบสิทธิ์ของโฟลเดอร์ MySQL และ XAMPP
- ตรวจสอบให้แน่ใจว่าบัญชีผู้ใช้ที่ใช้งาน XAMPP มีสิทธิ์การเข้าถึงแบบเต็ม
- บน Windows คุณอาจต้องคลิกขวาที่ โฟลเดอร์ XAMPP ไปที่ Properties→ Security แล้วปรับตามนั้น
- บน macOS และ Linux ให้ใช้ คำสั่งchmod และ chownเพื่อตั้งค่าการอนุญาตที่ถูกต้อง
5. รีสตาร์ทและตรวจสอบ
หลังจากดำเนินการแก้ไขแล้ว ให้รีสตาร์ท XAMPP และบริการ MySQL โดยเฉพาะผ่านแผงควบคุม XAMPP
คอยดูไฟล์บันทึกข้อผิดพลาดของ MySQL เพื่อดูคำเตือนหรือข้อผิดพลาดใหม่ๆ โดยปกติจะพบบันทึกนี้ในไดเร็กทอรีข้อมูลหรือระบุไว้ใน ไฟล์ my.ini
สรุป
เมื่อใช้สภาพแวดล้อมเซิร์ฟเวอร์ท้องถิ่น การชนกับข้อผิดพลาด XAMPP MySQL “การปิดระบบ MySQL โดยไม่คาดคิด” เป็นปัญหาทั่วไปที่คุณควรทราบ จำเป็นอย่างยิ่งที่จะต้องรู้วิธีแก้ไขและสำรองข้อมูลเซิร์ฟเวอร์ ในคู่มือนี้ เราได้อธิบายให้คุณทราบถึงพื้นฐานของ XAMPP วิธีการทำงาน เรียนรู้เกี่ยวกับปัญหา สาเหตุที่เกิดขึ้น และวิธีแก้ไขทีละขั้นตอนโดยไม่ต้องตื่นตระหนก
หากคุณใช้เซิร์ฟเวอร์ XAMPP ในเครื่อง โปรดเก็บคู่มือนี้ไว้เผื่อในกรณีที่คุณประสบปัญหาอีกครั้ง ไม่ต้องกังวล เราได้อธิบายกระบวนการแก้ไขปัญหาทั้งหมดโดยละเอียดให้กับคุณแล้ว