ช่วงที่ย้ายมาใช้ 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 ได้ อ้างอิงจากภาพด้านล่าง
ซึ่ง 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
จากนั้นหาบรรทัดที่ชื่อ
innodb_lock_wait_timeout = 50
และแทรกโค้ดบรรทัดนี้ลงบรรทัดที่อยู่ถัดไปด้านล่าง
innodb_flush_method=normal
บันทึกไฟล์ให้เรียบร้อย และลองกด Start MySQL ใหม่ ก็แก้ปัญหาได้แล้ว