Windows / MySQL 5.5. / Crash on startup on exeption 0xc0000005

1

i have Windows 2016 Standard OS with installed MySQL 5.5.33.0. This morning I found out that the mysql server is not running and cannot be turned on. When i try to turn it on, it crashes immediately, and there is only exception information 0xc0000005 in Event Viewer. I can't even run mysqlcheck because it doesn't work when mysqld isn't running.

I will be very grateful for any advice.

I was able to enable logging and set paths in MySQL settings. There are quite a few entries in the log with this text (numbers change):

210107 10:28:21 InnoDB: Error: page 33382 log sequence number 114951961648 
InnoDB: is in the future! Current system log sequence number 111386529682. 
InnoDB: Your database may be corrupt or you may have copied the InnoDB 
InnoDB: tablespace but not the InnoDB log files. 
See InnoDB: dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
InnoDB: for more information.
210107 10:32:33  InnoDB: Error: Insert buffer insert fails; page free 43, dtuple size 50 
                 InnoDB: Cannot insert index record DATA TUPLE: 2 fields;  
                    0: len 40; hex 436f6d70757465722050726573732020202020202020202020202020202020202020202020202020; 
                asc Computer Press                          ;;  
                    1: len 4; hex 800070da; asc   p ;;  
                InnoDB: The table where this index record belongs 
                InnoDB: is now probably corrupt. Please run CHECK TABLE on 
                InnoDB: that table. 
                InnoDB: space 0, page 109621, zip_size 0, bitmap bits 1

Progress update: I managed to start MySQL with innodb_force_recovery = 3 and it even runs for a while. If I run mysqlcheck.exe --all-databases --auto-repair, it reports corrupt in some tables of this type:

Warning: InnoDB: Index 'ix_linear_pole' contains 1683314 entries, should be 1683294.

However, the check does not run to the end and for one specific table the whole mysql server crashes again.

UPDATE: I found out that the error is in the loaded command in the InnoDB buffer, but I don't know how to delete it. Each time I turn on the server, a command in the buffer crash it.

mysql
crash
asked on Stack Overflow Jan 7, 2021 by Ondřej Douša • edited Jan 7, 2021 by Ondřej Douša

1 Answer

1

After several hours of research, I found that MySQL was failing to load InnoDB Buffer. The easiest way was to add a command to my.ini

innodb_force_recovery = 4

However, the database is started only for SHOW data. Using mysqldump, I backed up the data without indexes. Then I deleted the database from the server, I also deleted the logs and database data from the system (C: \ ProgramData \ ... \ MySQL \ data \ ibdata and iblog0 and iblog1). Then I stopped MySQL and removed innodb_force_recovery. The database then ran in but without data. I uploaded the original data back using normal recovery and created indexes.

From that moment on, everything works without problems.

answered on Stack Overflow Jan 8, 2021 by Ondřej Douša

User contributions licensed under CC BY-SA 3.0