การปิดระบบ MySQL โดยไม่คาดคิด: วิธีแก้ไขข้อผิดพลาด XAMPP MySQL

เผยแพร่แล้ว: 2024-03-21

ข้อผิดพลาดรันไทม์เป็นเรื่องปกติทั้งในหมู่ผู้ใช้เซิร์ฟเวอร์ที่ใช้งานจริงและผู้ใช้เซิร์ฟเวอร์ภายในเครื่อง “การปิดระบบ MySQL โดยไม่คาดคิด” เป็นข้อความที่นักพัฒนา วิศวกร และผู้ดูแลระบบฐานข้อมูลจำนวนมากพบเจอเมื่อใช้ XAMPP เป็นสภาพแวดล้อมการพัฒนาในเครื่อง สถานการณ์นี้อาจเป็นเรื่องที่น่ารำคาญ แต่ก็ไม่ใช่ปัญหาที่เกิดขึ้นได้ยาก ข่าวดีก็คือ มันสามารถแก้ไขได้ เราได้รับหลังของคุณที่นี่

ในคู่มือนี้ เราจะพูดถึงสาเหตุที่คุณได้รับข้อความ “ปิดระบบ MySQL โดยไม่คาดคิด” และวิธีแก้ไขข้อผิดพลาด XAMPP MySQL นี้

สิ่งสำคัญคือต้องเริ่มต้นด้วยการพูดคุยถึงต้นตอของปัญหา แต่ก่อนอื่น มาเรียนรู้เพิ่มเติมเกี่ยวกับ XAMPP กันก่อน

MySQL ปิดตัวลงโดยไม่คาดคิด ข้อผิดพลาด XAMPP MySQL

ทำความเข้าใจพื้นฐานของ 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:

  1. เปิดพร้อมท์คำสั่ง: กด Win + R → พิมพ์ cmd → กด Enter
  2. ใช้ netstat: พิมพ์ netstat -ano |findstr 3306 → กด Enter คำสั่งนี้ค้นหาแอปพลิเคชันใด ๆ ที่ใช้พอร์ต 3306 ซึ่งเป็นพอร์ตเริ่มต้นสำหรับ MySQL
  3. ตีความผลลัพธ์: หากคุณเห็นบรรทัดเอาต์พุต แสดงว่ามีบางอย่างใช้พอร์ต 3306 โปรดสังเกต PID (Process ID)ที่ท้ายบรรทัด เนื่องจากคุณจะต้องใช้เพื่อระบุแอปพลิเคชันที่ขัดแย้งกัน

สำหรับผู้ใช้ macOS/Linux:

  1. เปิดเทอร์มินัล
  2. ใช้ lsof: พิมพ์ lsof -i :3306 → กด Enterคำสั่งนี้แสดงรายการไฟล์ที่เปิดและแอปพลิเคชันที่เกี่ยวข้องโดยใช้พอร์ต 3306
  3. อ่านผลลัพธ์: หากคำสั่งส่งคืนข้อมูล แสดงว่าพอร์ต 3306 ใช้งานอยู่สังเกตชื่อแอปพลิเคชันหรือPID ที่ให้ไว้

หลังจากระบุแอปพลิเคชันโดยใช้พอร์ต 3306 แล้ว ให้แก้ไขปัญหาโดยการเปลี่ยนพอร์ตของแอปพลิเคชันที่ขัดแย้งหรือพอร์ต MySQL

ตัวเลือกที่ 1: ใช้ PID หรือชื่อแอปพลิเคชันที่คุณจดบันทึกไว้ก่อนหน้านี้เพื่อค้นหาแอปพลิเคชันที่ขัดแย้งกัน ค้นหาการตั้งค่าการกำหนดค่าหรือไฟล์สำหรับแอปพลิเคชัน ค้นหาการตั้งค่าหมายเลขพอร์ต (ซึ่งควรตั้งค่าเป็น 3306) และเปลี่ยนเป็นหมายเลขพอร์ตอื่น บันทึกการเปลี่ยนแปลงของคุณ

การเปลี่ยนพอร์ต 3306

ตัวเลือกที่ 2: เปลี่ยนพอร์ตของ MySQL ใน XAMPP: เปิด ไฟล์ my.ini ที่อยู่ในโฟลเดอร์ XAMPP MySQL ของคุณ ค้นหาบรรทัดที่ระบุพอร์ต (โดยปกติคือพอร์ต=3306) แล้วเปลี่ยนเป็นพอร์ตว่างรีสตาร์ท MySQL หลังจากทำการเปลี่ยนแปลงนี้

2. ซ่อมแซมตารางหรือไฟล์ข้อมูลที่เสียหาย

ดังที่เราทราบมาว่าตาราง MySQL หรือไฟล์ข้อมูลภายใน XAMPP อาจเสียหาย ทำให้เกิดปัญหาการปิดระบบ MySQL โดยไม่คาดคิด ต่อไปนี้เป็นขั้นตอนในการระบุการทุจริต

  1. ไปที่ไดเร็กทอรีการติดตั้ง XAMPP → ไปที่โฟลเดอร์ mysql\ dataนี่คือที่ที่ MySQL เก็บไฟล์ฐานข้อมูล
  2. ค้นหาไฟล์ .err ซึ่งเป็นไฟล์บันทึกข้อผิดพลาดที่อาจมีข้อมูลเกี่ยวกับสิ่งที่ผิดพลาด
  3. ตรวจสอบไฟล์ที่ตั้งชื่อตามฐานข้อมูลของคุณ ใส่ใจกับขนาดไฟล์และวันที่แก้ไขที่ดูไม่ปกติ เนื่องจากสิ่งเหล่านี้อาจเป็นตัวบ่งชี้ถึงความเสียหายได้

หากคุณระบุไฟล์ที่เสียหายได้ นี่คือวิธีการแก้ไข

สำหรับตาราง MyISAM

  1. สำรองข้อมูลของคุณก่อน ทำสิ่งนี้ผ่าน phpMyAdmin ของ XAMPP โดยส่งออกฐานข้อมูลของคุณ หรือใช้คำสั่ง mysqldump หากคุณคุ้นเคยกับเครื่องมือบรรทัดคำสั่ง
  2. เปิดพรอมต์คำสั่ง (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 สำหรับตารางเหล่านี้

  1. ดูที่ไฟล์ .err ภายในไดเร็กทอรี mysql\data เพื่อดูข้อความแสดงข้อผิดพลาดเกี่ยวกับตาราง InnoDBสิ่งเหล่านี้สามารถให้คำแนะนำเกี่ยวกับสิ่งผิดปกติได้
  2. ลองบังคับให้ฟื้นตัว บังคับให้ MySQL เข้าสู่โหมดการกู้คืน แก้ไข ไฟล์my.ini (Windows) หรือ my.cnf (ระบบปฏิบัติการอื่น)เพิ่มinnodb_force_recovery = 1ใต้ ส่วน[mysqld]จากนั้นรีสตาร์ท MySQL

หากสิ่งต่างๆ ดูไม่ดี ทางออกที่ดีที่สุดของคุณอาจเป็นการกู้คืนจากข้อมูลสำรอง หวังว่าคุณจะมีอันล่าสุดที่สามารถแทนที่ตารางหรือฐานข้อมูลที่เสียหายได้

3. ตรวจสอบและปรับการกำหนดค่า

  1. เปิด ไฟล์my.ini ด้วยโปรแกรมแก้ไขข้อความสิ่งสำคัญที่ต้องตรวจสอบ ได้แก่innodb_buffer_pool_size (การ เพิ่ม ขึ้นอาจช่วยประสิทธิภาพได้) และเส้นทางที่ระบุใน baseirและdatadir
  2. หากคุณพบการกำหนดค่าไม่ถูกต้องหรือสงสัยว่าการตั้งค่าอาจทำให้เกิดปัญหา ให้ทำการปรับเปลี่ยนที่จำเป็น ตัวอย่างเช่น หาก ตั้ง ค่า innodb_buffer_pool_size ต่ำเกินไปสำหรับเวิร์กโหลดของคุณ ให้เพิ่มตามนั้นสำรอง ไฟล์my.ini ดั้งเดิม ก่อนทำการเปลี่ยนแปลง เสมอ

4. ตั้งค่าการอนุญาตที่ถูกต้อง

MySQL หรือ XAMPP อาจไม่มีสิทธิ์ที่จำเป็นในการเข้าถึงไดเร็กทอรีและไฟล์ โดยเฉพาะหลังจากการอัพเดตหรือการเปลี่ยนแปลงซอฟต์แวร์ความปลอดภัย

  1. ตรวจสอบสิทธิ์ของโฟลเดอร์ MySQL และ XAMPP
  2. ตรวจสอบให้แน่ใจว่าบัญชีผู้ใช้ที่ใช้งาน XAMPP มีสิทธิ์การเข้าถึงแบบเต็ม
  3. บน Windows คุณอาจต้องคลิกขวาที่ โฟลเดอร์ XAMPP ไปที่ Properties→ Security แล้วปรับตามนั้น
  4. บน macOS และ Linux ให้ใช้ คำสั่งchmod และ chownเพื่อตั้งค่าการอนุญาตที่ถูกต้อง

5. รีสตาร์ทและตรวจสอบ

หลังจากดำเนินการแก้ไขแล้ว ให้รีสตาร์ท XAMPP และบริการ MySQL โดยเฉพาะผ่านแผงควบคุม XAMPP

คอยดูไฟล์บันทึกข้อผิดพลาดของ MySQL เพื่อดูคำเตือนหรือข้อผิดพลาดใหม่ๆ โดยปกติจะพบบันทึกนี้ในไดเร็กทอรีข้อมูลหรือระบุไว้ใน ไฟล์ my.ini

สรุป

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

หากคุณใช้เซิร์ฟเวอร์ XAMPP ในเครื่อง โปรดเก็บคู่มือนี้ไว้เผื่อในกรณีที่คุณประสบปัญหาอีกครั้ง ไม่ต้องกังวล เราได้อธิบายกระบวนการแก้ไขปัญหาทั้งหมดโดยละเอียดให้กับคุณแล้ว