mariadbxampp

XAMPP Maria DB version update not working due to ' Upgrade after a crash is not supported.'


I am aware that this question has been asked many times here, but the solutions provided aren't working.

In brief, I am trying to upgrade the Maria DB 10.4.32 to Maria DB 10.11.10 on XAMPP. I'm doing this because I'm migrating my Wordpress website which requires a newer version.

I have followed the answers to the following question extremely meticulously,Update xampp from maria db 10.1 to 10.2, but none of them are working for me. To be precise, I followed the 15 step process (starting with "1. Shutdown or Quit your XAMPP server from XAMPP control panel."; ending with "15. Shutdown and restart MariaDB (MySQL)."). I also tried the other solutions but to no avail.

I believe I have identified the issue in the logfile: "InnoDB: Upgrade after a crash is not supported. The redo log was created with MariaDB 10.4.8. You must start up and shut down MariaDB 10.4 or earlier."

This same issue was reported in InnoDB: Upgrade after a crash is not supported and it seems that the issue remained unresolved; the advise given was to do a 'clean shutdown' which did not help me resolve the issue. Also, not entirely sure what this clean shutdown is - I've shut MYSQL on XAMPP control panel using "stop" and verified that the process is also terminated on the task manager. However, the user on the thread mentioned that after a successful shut down, "Shutdown complete" should be the last line on the error_log (I never even get this line in the log).

For further context, the most important thing for me is to upgrade to the newer Maria DB version, the data in the xampp/data folder is irrelevant.

Below, is my logfile:

2025-03-02  1:13:36 0 [Note] Starting MariaDB 10.11.10-MariaDB source revision 3d0fb150289716ca75cd64d62823cf715ee47646 server_uid qh+RaBUIwnwCqN6tm8Hkjmn4FFc= as process 14100
2025-03-02  1:13:36 0 [Note] InnoDB: Compressed tables use zlib 1.3.1
2025-03-02  1:13:36 0 [Note] InnoDB: Number of transaction pools: 1
2025-03-02  1:13:36 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2025-03-02  1:13:36 0 [Note] InnoDB: Initializing buffer pool, total size = 16.000MiB, chunk size = 1.000MiB
2025-03-02  1:13:36 0 [Note] InnoDB: Completed initialization of buffer pool
2025-03-02  1:13:36 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)
2025-03-02  1:13:36 0 [ERROR] InnoDB: Upgrade after a crash is not supported. The redo log was created with MariaDB 10.4.8. You must start up and shut down MariaDB 10.4 or earlier.
2025-03-02  1:13:36 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2025-03-02  1:13:36 0 [Note] InnoDB: Starting shutdown...
2025-03-02  1:13:37 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2025-03-02  1:13:37 0 [Note] Plugin 'FEEDBACK' is disabled.
2025-03-02  1:13:37 0 [Note] mysqld.exe: SSPI: using principal name 'localhost', mech 'Negotiate'
2025-03-02  1:13:37 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2025-03-02  1:13:37 0 [ERROR] Aborting


Solution

  • The error message is far from intuitive...

    Here is what is going on:

    Either by using the Xampp control panel, or perhaps even calling mysql_stop.bat from the command line, Xampp simply just kills the MySql (MariaDb) process. In other words, it doesn't initiate a proper shutdown process. It is effectively like a crash.

    You can see this in mysql_stop.bat file:

    echo Mysql shutdowm ... cmd.exe /C start "" /MIN call "@@BITROCK_INSTALLDIR@@\\killprocess.bat" "mysqld.exe"

    The reason you have never noticed this before, as mentioned in the other answer, is MySql is durable and attempting to start it up again, after the kill process, works just fine. It doesn't bother checking for a crash before starting again.

    However, apparently, the automatic upgrade process does check for this, so a proper shutdown is needed.

    The way to initiate the proper shutdown process is actually open a MySql (MariaDb) console (with the older version of MariaDB) and at the prompt, execute the command 'SHUTDOWN' like so:

    MariaDB [(none)]> shutdown;

    Exit the MySql console, switch to the new version of MariaDb and try starting again.