docker InnoDB:preallocating 147456 bytes for file XXX.ibd failed with error 2

noj0wjuj  于 2023-11-17  发布在  Docker
关注(0)|答案(2)|浏览(105)

我正在使用官方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)

字符串

nvbavucw

nvbavucw1#

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

- disable WSL2, switch to Hyper-V

字符串
瞧,开始工作了。
现在,有趣的部分是,同事有同样的问题,但已经禁用了WSL 2,他的问题已经通过启用WSL 2得到了解决。
所以我猜,在WSL 2和Hyper-V之间更改操作时,会发生一些事情,在使用图像时会损坏,并使用此开关重置。
我没有时间切换回WSL 2来证实我的假设。当我找到一些时间,我会更新这篇文章。
最新消息:无法通过容器的配置找到解决方案,所以我尝试了旧版本的MariaDB Docker容器,它开始在版本10.3.9上工作。现在,我将使用这个版本,直到我找到更多时间去MariaDB的Jira并报告错误。

xzv2uavs

xzv2uavs2#

我在使用以下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

字符串
我将其缩小到Map卷的问题。我通过使用named volume解决了这个问题:

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

相关问题