XF 2.1 Database Crash xf_post.myi

ASap

Active member
Hi there,

One of our forum databases has crashed 🤕

Output when I do mysqlcheck:

Code:
db.xf_post
warning  : Table is marked as crashed and last repair failed
warning  : Size of indexfile is: 327299072      Should be: 1024
error    : Found key at page -1 that points to record outside datafile
error    : Corrupt

Code:
# myisamchk --force --fast --update-state /var/lib/mysql/db/xf_post.MYI
Info: Using unique option prefix 'key_buffer' is error-prone and can break in the future. Please use the full name 'key_buffer_size' instead.
Info: Using unique option prefix 'sort_buffer' is error-prone and can break in the future. Please use the full name 'sort_buffer_size' instead.
Info: Using unique option prefix 'read_buffer' is error-prone and can break in the future. Please use the full name 'read_buffer_size' instead.
Info: Using unique option prefix 'write_buffer' is error-prone and can break in the future. Please use the full name 'write_buffer_size' instead.
Checking MyISAM file: /var/lib/mysql/forum_db/xf_post.MYI
Data records: 4719563   Deleted blocks:       0
myisamchk: warning: Table is marked as crashed and last repair failed
- check file-size
myisamchk: warning: Size of indexfile is: 327299072      Should be: 1024
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
myisamchk: Unknown error 126
myisamchk: error: Can't read indexpage from filepos: -1
- recovering (with sort) MyISAM-table '/var/lib/mysql/forum_db/xf_post.MYI'
Data records: 4719563
- Fixing index 1
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
Key 1 - Found wrong stored record at 6458347680
...
Key 1 - Found wrong stored record at 6458347680
myisamchk: Disk is full writing '/var/lib/mysql/db/xf_post.TMD' (Errcode: 28 "No space left on device"). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
myisamchk: Retry in 60 secs. Message reprinted in 600 secs
^C
root@www:~#

It seems to loop and the .TMD is consuming the whole server disk space.

Code:
root@www:/var/lib/mysql/db# ls -alh xf_post.*
-rw-rw---- 1 mysql mysql 4.7K Mar 12  2019 xf_post.frm
-rw-rw---- 1 mysql mysql 6.6G Mar 13 13:08 xf_post.MYD
-rw-rw---- 1 mysql mysql 313M Mar 13 20:02 xf_post.MYI
-rw-r----- 1 root  root  235G Mar 13 20:35 xf_post.TMD
root@www:/var/lib/mysql/db#

Any idea how to recover this?
@Jake Bunce: Can we possibly manually rebuild the XenForo index?
 
Last edited:
Top Bottom