Docker部署MariaDB 10.5.17遇InnoDB存储引擎不支持错误求助
解决MariaDB容器启动时InnoDB存储引擎错误的问题
你删错了日志文件的路径
你执行的sudo rm -rf /var/lib/mysql/ib_logfile*是删除宿主机默认MySQL目录的文件,但你的容器用的是名为database的Docker卷,实际数据存在Docker卷的专属路径里。先找到卷的实际挂载点:docker volume inspect database查看输出里的
Mountpoint字段(比如/var/lib/docker/volumes/database/_data),然后删除该路径下的日志文件:sudo rm -rf /var/lib/docker/volumes/database/_data/ib_logfile*还有其他损坏的InnoDB文件需要清理
除了ib_logfile,ibdata1、ib_buffer_pool这些文件损坏也会导致该错误(注意:删除ibdata1会丢失所有数据库数据,仅适用于新搭建无数据的容器):sudo rm -rf /var/lib/docker/volumes/database/_data/ibdata1 /var/lib/docker/volumes/database/_data/ib_buffer_pool检查容器网络配置
- 确认你指定的
--ip IP属于mynet网络的可用网段,IP冲突可能间接引发存储引擎启动异常 - 尝试去掉自定义IP参数启动容器,看是否能正常运行:
docker run --net mynet -p 3306:3306 --mount source=database,target=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=XXXX mariadb:10.5.17 - 若网络配置有问题,重新创建
mynet网络:docker network rm mynet docker network create mynet
- 确认你指定的
修复卷目录权限
Docker卷内的文件权限可能不正确,导致MariaDB进程无法读写InnoDB相关文件,修改权限:sudo chown -R 999:999 /var/lib/docker/volumes/database/_data(999是MariaDB容器内mysql用户的UID和GID)
内容的提问来源于stack exchange,提问作者divyashie
相关产品推荐
相关产品推荐

