在 Windows 11 Pro(10.0.22621 Build 22621)上每次全新安装(最新)XAMPP 8.2.4 大约 5-6 天后,MariaDB 10.4.28 在每次运行期间都会开始失败:
有时我直接在 XAMPP 中收到错误:
Attempting to start MySQL app...
Status change detected: running
Status change detected: stopped
Error: MySQL shutdown unexpectedly.
This may be due to a blocked port, missing dependencies,
improper privileges, a crash, or a shutdown by another method.
我完全是新手,但我认为mysql_error.log中没有任何“不寻常”的内容:
[Note] Starting MariaDB 10.4.28-MariaDB source revision c8f2e9a5c0ac5905f28b050b7df5a9ffd914b7e7 as process 20488
[Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
[Note] InnoDB: Uses event mutexes
[Note] InnoDB: Compressed tables use zlib 1.2.12
[Note] InnoDB: Number of pools: 1
[Note] InnoDB: Using SSE2 crc32 instructions
[Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
[Note] InnoDB: Completed initialization of buffer pool
[Note] InnoDB: 128 out of 128 rollback segments are active.
[Note] InnoDB: Creating shared tablespace for temporary tables
[Note] InnoDB: Setting file 'C:\XAMPP\mysql\data\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
[Note] InnoDB: File 'C:\XAMPP\mysql\data\ibtmp1' size is now 12 MB.
[Note] InnoDB: 10.4.28 started; log sequence number 1972203; transaction id 2830
[Note] InnoDB: Loading buffer pool(s) from C:\XAMPP\mysql\data\ib_buffer_pool
[Note] Plugin 'FEEDBACK' is disabled.
[Note] Server socket created on IP: '::'.
但 Windows 事件日志中有一些非常令人费解的条目。
对于每次运行我只得到这个:
Aborting
Fatal error: Can't open and lock privilege tables: Incorrect file format 'db'
或者上面后面跟着:
mysqld.exe: Aria engine: checkpoint failed
mysqld.exe: Can't sync file 'C:\XAMPP\mysql\data\aria_log.00000001' to disk (Errcode: 9 "Bad file descriptor")
mysqld.exe: Error writing file 'C:\XAMPP\mysql\data\aria_log.00000001' (Errcode: 9 "Bad file descriptor")
“坏文件描述符”在我脑海中敲响了“磁盘损坏”的警钟,但 Windows 说不:
(...)
0 bad file records processed.
Phase duration (Bad file record checking): 1.61 milliseconds.
(...)
Windows has scanned the file system and found no problems.
No further action is required.
我尝试了简单删除aria_log.00000001的“白痴”方式。我所取得的成就是:
- MariaDB一次性启动
- 添加额外的行来记录aria_log.00000001未找到
- 创建和使用aria_log.00000002、aria_log.00000003等
但这只是一次“虚拟”运行。所有客户端都可以看到 MariaDB 正在运行(XAMPP 作为Status change detected: running
最后一个日志行并且没有错误),但实际上这是某种奇怪的“锁”,客户端无法检测到这一事实并永远挂起而不会超时:
浏览器也是如此,它永远显示“循环”,直到我手动杀死 db。
之后,Error: MySQL shutdown unexpectedly.
每次运行一切都会恢复到“正常”含义。
我还没有尝试过“暴力模式”(此处)。当一系列“意外停机”开始时,我只是:
- 卸载XAMPP(备份数据)
- 删除整个C:\XAMPP文件夹
- 全新安装 XAMPP 8.2.4
在此之后,我总是“接下来的几天都很好”。一般是五到六个。
我在 Windows 上使用 XAMPP 已有 10 多年了,在从 XP 开始的 Windows 版本上从未遇到过任何问题。到目前为止。
除了永远摆脱 XAMPP 并尝试其他 LAMP(因为重新安装不会带来任何东西)之外,我还能做些什么吗?
编辑:Maria DB 和整个类似服务器的系统(Apache/XAMPP)都没有更新。一切都坚持 XAMPP 8.2.4 和 MariaDB 10.4.28强文本至少半年。唯一的“更新”是我不断的卸载-安装序列(现在就是这样做的)。
编辑:这是 Windows 11 Pro(10.0.22621 Build 22621),因此底层存储系统是单个 SSD 驱动器(KBG50ZNS512G NVMe KIOXIA 512 GB;475 GB 真实容量)。这是一台全新的笔记本电脑,因此磁盘到目前为止已经运行了 2.5 周。