พอ reboot vps แล้ว mysql ชอบมีปัญหาครับทำยังไงดี

ขึ้น error นี้ครับ [root@abbbab /]# /etc/init.d/mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/yourdomain.com.pid).
เป็นทุกครั้งที่ เซริฟดับทำไงดีครับ ชี้แนะหน่อย ให้ซัพพอร์ทมาดูแลรอนานครับไม่ทันใจ Centos 6.7+directadmin ครับ ลองหาในเน็ตแล้วทำไม่ได้เป็นเพราะระบบ directadmin รึเปล่าครับเลยแก้ได้ไม่เหมือนชาวบ้าน

[root@abbbab /]# service mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql)

[Moved to Technical Topics - กรุณาโพสต์ให้ถูกหมวดครับ]

ดู MySQL Log ครับ

/var/lib/mysql/xxxx.log หรืออาจจะอยู่ใน /var/log/mysqld.log อะไรทำนองนี้ มันจะบอกว่าทำไม

1 Like

น่าจะอยู่ที่ /var/lib/mysql/xxxxx.err นะครับ โดยที่ xxx คือ hostname ของเครือง

1 Like

ได้แล้วครับ

ไม่บอกซักหน่อยหรือครับว่าทำอะไรมันถึงได้

1 Like

ตอนนี้ล่มอีกรอบแล้วครับ

ผม restore ไปที่แบ๊คอัพของเมื่อ 5 วันก่อนก็กลับมาใช้งานได้แปปนึงครับ

เอาLOGตามที่คุณMinddragonบอก มาให้ดูครับ มันไม่เจอ error ล่าสุดครับ

InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: Error: could not open single-table tablespace file ./mysql/innodb_index_stats.ibd
InnoDB: We do not continue the crash recovery, because the table may become
InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
InnoDB: To fix the problem and start mysqld:
InnoDB: 1) If there is a permission problem in the file and mysqld cannot
InnoDB: open the file, you should modify the permissions.
InnoDB: 2) If the table is not needed, or you can restore it from a backup,
InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
InnoDB: crash recovery and ignore that table.
InnoDB: 3) If the file system or the disk is broken, and you cannot remove
InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
InnoDB: and force InnoDB to continue crash recovery here.
160607 11:47:01 mysqld_safe mysqld from pid file /var/lib/mysql/princenadprincessbaby.com.pid ended
160607 11:47:07 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2016-06-07 11:47:08 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-06-07 11:47:08 0 [Note] /usr/sbin/mysqld (mysqld 5.6.29) starting as process 9640 …
2016-06-07 11:47:08 9640 [Note] Plugin ‘FEDERATED’ is disabled.
2016-06-07 11:47:08 9640 [Note] InnoDB: Using atomics to ref count buffer pool pages
2016-06-07 11:47:08 9640 [Note] InnoDB: The InnoDB memory heap is disabled
2016-06-07 11:47:08 9640 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-06-07 11:47:08 9640 [Note] InnoDB: Memory barrier is not used
2016-06-07 11:47:08 9640 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-06-07 11:47:08 9640 [Note] InnoDB: Using Linux native AIO
2016-06-07 11:47:08 9640 [Note] InnoDB: Using CPU crc32 instructions
2016-06-07 11:47:08 9640 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-06-07 11:47:08 9640 [Note] InnoDB: Completed initialization of buffer pool
2016-06-07 11:47:08 9640 [Note] InnoDB: Highest supported file format is Barracuda.
2016-06-07 11:47:08 9640 [Note] InnoDB: The log sequence numbers 0 and 0 in ibdata files do not match the log sequence number 18868829 in the ib_logfiles!
2016-06-07 11:47:08 9640 [Note] InnoDB: Database was not shutdown normally!
2016-06-07 11:47:08 9640 [Note] InnoDB: Starting crash recovery.
2016-06-07 11:47:08 9640 [Note] InnoDB: Reading tablespace information from the .ibd files…
2016-06-07 11:47:08 9640 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace promoti2_Aile/wp_commentmeta uses space ID: 2 at filepath: ./promoti2_Aile/wp_commentmeta.ibd. Cannot open tablespace mysql/innodb_index_stats which uses space ID: 2 at filepath: ./mysql/innodb_index_stats.ibd
2016-06-07 11:47:08 7f97765e3720 InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: Error: could not open single-table tablespace file ./mysql/innodb_index_stats.ibd
InnoDB: We do not continue the crash recovery, because the table may become
InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
InnoDB: To fix the problem and start mysqld:
InnoDB: 1) If there is a permission problem in the file and mysqld cannot
InnoDB: open the file, you should modify the permissions.
InnoDB: 2) If the table is not needed, or you can restore it from a backup,
InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
InnoDB: crash recovery and ignore that table.
InnoDB: 3) If the file system or the disk is broken, and you cannot remove
InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
InnoDB: and force InnoDB to continue crash recovery here.

อันนี้เป็น LOG ตอนขอ restart service
[root@abbab ~]# service mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/abbab.com.pid).

แก้ได้แล้วครับ innodb_force_recovery = 1 ไปเพิ่มใน my.cnf ก็หายฮะ

2 Likes

อันนี้ไม่ใช่วิธีแก้นะครับ เอาไว้ recovery ครับ

ปกติถ้า reboot เครื่องแบบถูกต้องจะไม่เกิดนะครับ

ไม่หายจริงด้วยครับ มีเรื่องอยากถามเพิ่มถ้าเราต้องการ เปลี่ยน รหัสroot mysql มันจะมีผลอะไรกับ directadmin ไหมครับคือโฮสติ้งที่ใช้ เค้าบอกไม่แนะนำตั้งแต่ติดตั้งใหม่ๆ

นี่ครับ Error มันอยู่ตรงนี้
ลองเชคดูว่าไฟล์หายรึเปล่า

สำหรับ innodb force recovery เป็นการ override MySQL ว่า ถ้า InnoDB Engine เกิดปัญหา ให้ ignore มันไป ไม่ต้อง crash
โดย
0 = ทำงานปกติ
1 - 7 คือจะ ignore error ในระดับต่างๆ โดย 7 หมายถึง ไม่แคร์โลกฮะ แบบละเอียดๆผมก็จำไม่ค่อยได้ 555+

ถ้า force recovery ไม่ใช่ 0 ***** InnoDB จะเป็นโหมด อ่านอย่างเดียว เขียนไม่ได้ แปลว่า insert / update / delete ไมไ่ด้เลย *****
ดังนั้นโหมดนี้ปกติมีไว้ใช้สำหรับการ dump database เดิมออกมา → ติดตั้ง MySQL ใหม่ → restore คืนครับ

เดี่ยวลองไล่แก้ดูครับ ปกติDTBผมมไม่ได้ใช้งานเลยลบออกไป พอลบออกไป support เค้าแจ้งว่าเป็น DTB สำหรับส่ง Email ซวยละซิคือมันเป็น DTB ที่สร้างหลังอันหลักทำไมเค้าถึงเซทอีเมลกะอันนี้ไม่ทราบ ไล่แก้กันต่อไปครับ ขอบคุณพี่ๆทุกท่านครับ

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.