我非常精心地遵循了以下问题的答案,
uptatexampp从玛丽亚db 10.1到10.2,但它们都不为我工作。确切地说,我遵循了15个步骤过程(从XAMPP控制面板中“1。关闭或退出XAMPP服务器”。;以“15。Shutdown”和“ shutdown和Ristart Mariadb(MySQL)”结尾。)。我还尝试了其他解决方案,但无济于事。
我相信我已经在日志文件中确定了问题:“ Innodb:不支持崩溃后升级。重做日志是用Mariadb 10.4.8创建的。您必须启动并关闭Mariadb 10.4或更早的Mariadb 10.4。”在INNODB中也报道了同样的问题:不支持崩溃后的升级,似乎该问题仍未解决;给出的建议是进行“干净的关闭”,这无助于我解决这个问题。另外,不完全确定这种干净的关闭是什么 - 我使用“ stop”在XAMPP控制面板上关闭MySQL,并验证该过程也已终止于任务管理器上。但是,线程上的用户提到,成功关闭后,“关闭完成”应该是error_log上的最后一行(我什至从未在日志中获得此行)。 在进一步的上下文中,对我来说最重要的是要升级到较新的Maria DB版本,XAMPP/数据文件夹中的数据是无关紧要的。
贝洛,是我的日志文件:
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
错误消息的字面意思是读取的。它不只是一些互联网搜索文本。
“您必须启动并关闭Mariadb 10.4或更早。”
一种方法是在Datadir上运行MariadB容器。
docker run --rm \
--volume {the mariadb datadir}:/var/lib/mysql \
--env MARIADB_AUTO_UPGRADE=1 \
mariadb:10.11
在启动之后。执行干净的关闭。它应该将最后一个容器日志完成为“关闭完成”。之后,在Xampp中开始Mariadb。
错误消息远非直观...
正在发生的事情:
whir使用XAMPP控制面板,或者可能是从命令行调用mysql_stop.bat的晚上,XAMPP只是杀死了MySQL(Mariadb)进程。 换句话说,它没有启动适当的关闭过程。 实际上就像崩溃一样。 您可以在mysql_stop.bat文件中看到此信息:
echo Mysql shutdowm ... cmd.exe /C start "" /MIN call "@@BITROCK_INSTALLDIR@@\\killprocess.bat" "mysqld.exe"
您以前从未注意到这一点的原因,如其他答案中所述,MySQL是耐用的,并试图在杀戮过程之后再次启动它,效果很好。 在重新开始之前,它不会打扰检查崩溃。
显然,自动升级过程确实需要检查,因此需要正确关闭。
启动正确关闭过程的方法实际上是打开MySQL(Mariadb)控制台(带有MariadB版本的较旧版本),并在提示中执行命令“关闭”,例如:MariaDB [(none)]> shutdown
execit mySQL控制台,切换到新版本的MariadB,然后重新开始。