Web Developer

วิธีแก้ MySQL หยุดทำงานตอนเปิดใช้ใน XAMPP

เรื่องที่เกี่ยวข้อง - MySQL, XAMPP

ช่วงที่ย้ายมาใช้ Mac แล้วลง Windows ไว้ในส่วนของ Bootcamp พลได้สังเกตอาการหนึ่งที่จะเจอในตอนแรกหลังจากติดตั้งโปรแกรม XAMPP เพื่อทำโปรเจค PHP ทุกครั้ง

นั่นคือการที่เราเปิด MySQL ไม่ขึ้น เรียกได้ว่า ยังไม่ทันเปิด ก็ตายเสียแล้ว โดยพลพบวิธีแก้ไข เลยมาเขียนแชร์ให้กับคนอื่นๆ ที่อาจจะเจออาการเดียวกันครับ

อาการเปิด MySQL ใน XAMPP ไม่ขึ้น

อาการคือพอเรากดปุ่ม Start MySQL ใน XAMPP Control Panel สักพักจะขึ้นหน้าต่างแจ้งว่า MySQL หยุดทำงาน

ถ้าดูจาก XAMPP Control Panel จะเห็น Logs ประมาณนี้

20:49:47  [mysql]     Status change detected: stopped
20:49:47  [mysql]   Error: MySQL shutdown unexpectedly.
20:49:47  [mysql]   This may be due to a blocked port, missing dependencies, 
20:49:47  [mysql]   improper privileges, a crash, or a shutdown by another method.
20:49:47  [mysql]   Press the Logs button to view error logs and check
20:49:47  [mysql]   the Windows Event Viewer for more clues
20:49:47  [mysql]   If you need more help, copy and post this
20:49:47  [mysql]   entire log window on the forums

ซึ่งเราสามารถกดดู Error log ของ MySQL ได้ อ้างอิงจากภาพด้านล่าง

XAMPP see mysql logs from panel

ซึ่ง Log ของพลจะเป็นแบบนี้

2018-04-29 20:33:16 3972 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2018-04-29 20:33:16 3972 [Note] InnoDB: The InnoDB memory heap is disabled
2018-04-29 20:33:16 3972 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2018-04-29 20:33:16 3972 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
2018-04-29 20:33:16 3972 [Note] InnoDB: Compressed tables use zlib 1.2.3
2018-04-29 20:33:16 3972 [Note] InnoDB: Using generic crc32 instructions
2018-04-29 20:33:16 3972 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2018-04-29 20:33:16 3972 [Note] InnoDB: Completed initialization of buffer pool
2018-04-29 20:33:16 3972 [Note] InnoDB: Highest supported file format is Barracuda.
2018-04-29 20:33:16 f84  InnoDB: Operating system error number 87 in a file operation.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
InnoDB: Operation read to file D:\win32-packages\build\src\storage\xtradb\os\os0file.cc and at line 3209
2018-04-29 20:33:16 3972 [ERROR] InnoDB: File (unknown): 'read' returned OS error 287. Cannot continue operation
180429 20:33:16 [ERROR] mysqld got exception 0x80000003 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,

วิธีแก้ไข

สามารถแก้ไขได้โดยการแก้ไข config ของ MySQL

เริ่มแรกให้กดปุ่ม Config และเลือก my.ini จากส่วนของ MySQL ใน XAMPP Control Panel

XAMPP open my.ini MySQL

จากนั้นหาบรรทัดที่ชื่อ

innodb_lock_wait_timeout = 50

และแทรกโค้ดบรรทัดนี้ลงบรรทัดที่อยู่ถัดไปด้านล่าง

innodb_flush_method=normal

บันทึกไฟล์ให้เรียบร้อย และลองกด Start MySQL ใหม่ ก็แก้ปัญหาได้แล้ว

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save