InnoDB:为文件 XXX.ibd 预分配 147456 字节失败,错误 2

问题描述 投票:0回答:2

我正在使用官方 MariadDB 10.7 docker 镜像,Windows 10。如果今天开始出现此错误并不断重复,请尝试一切:

- mysqlcheck -Ar
- delete docker image with all the data
- chkdsk -F
- dump and restore of table
- change MariaDB version
- different PC configs (nvme -> SSD)
docker mariadb innodb hyper-v wsl-2
2个回答
10
投票

在长时间阅读 MariaDB 错误跟踪器上的每个相关错误后,我在 Docker 环境中做了一项更改:

- disable WSL2, switch to Hyper-V

瞧,开始工作了。

现在,有趣的是,同事也遇到了同样的问题,但 WSL2 已经禁用,并且他的问题通过启用 WSL2 得到了解决。

所以我猜想,在更改 WSL2 和 Hyper-V 之间的操作时,会完成一些操作,但在使用图像时会被损坏,并且会使用此开关重置。

ATM 我没有时间切换回 WSL2 来确认我的假设。当我有时间时,我会更新这篇文章。

更新: 找不到容器配置的解决方案,所以我尝试了旧版本的 MariaDB docker 容器,它开始在版本 10.3.9 上工作。现在,我将使用这个版本,直到我找到更多时间去 MariaDB 的 Jira 并在那里报告错误。


0
投票

使用以下 docker run 命令运行 MariaDB 10.6.3 时,我遇到了同样的问题:

docker run -d --name mariadb --restart always -e MYSQL_ROOT_PASSWORD=develop -e MYSQL_DATABASE=YourDatabaseHere -e MYSQL_USER=develop -e MYSQL_PASSWORD=develop -v C:\some-path\dev-data\mysql:/var/lib/mysql -p 3306:3306 mariadb:10.6.3

我将其范围缩小到映射卷的问题。我通过使用命名卷解决了这个问题:

docker volume create myvolume

创建卷后,我的新 docker 运行如下所示:

docker run -d --name mariadb --restart always -e MYSQL_ROOT_PASSWORD=develop -e MYSQL_DATABASE=YourDatabaseHere -e MYSQL_USER=develop -e MYSQL_PASSWORD=develop -v myvolume:/var/lib/mysql -p 3306:3306 mariadb:10.6.3
© www.soinside.com 2019 - 2024. All rights reserved.