回到顶部

阅读目录

docker 重新新建 mysql 容器,选择原来的数据目录,无法启动

错误日志:

解决办法:

正确的方法是先备份旧数据,删除旧容器,然后使用空的数据目录启动新容器,最后再选择性地从备份恢复需要的数据。

如果直接指定已经存在的数据目录启动新的 mysql 容器,会导致无法正常启动的问题。主要原因是mysql的数据目录中已经存在之前容器的 mysql 数据,如果直接复用同一数据目录启动新容器,会导致 mysql 内部的 uuid、sequence不一致,无法正常启动。解决方法是:

1. 停止并删除原先的 mysql 容器

docker stop mysql
docker rm mysql

2. 备份并删除原数据目录

mv /var/lib/mysql /var/lib/mysql_bak

3. 创建新的空数据目录

mkdir -p /var/lib/mysql

 4. 启动新容器,映射到新的空数据目录

docker run --name mysql-yzq -d -v /var/lib/mysql:/var/lib/mysql mysql:latest

这样 mysql 内部将重新初始化数据,而不会与旧数据冲突。

5. 如果需要恢复数据,可以从备份目录复制 *.ibd 数据文件到新容器的数据目录。

这个过程可以确保 mysql 的 uuid 和 sequence 号码重新生成,避免与旧数据的不一致问题。

 


^_^
请喝咖啡 ×

文章部分资料可能来源于网络,如有侵权请告知删除。谢谢!

前一篇: 阿里云 docker 镜像仓库拉取 pull 和 推送 push 操作指南
下一篇: 好用的电脑和手机互传工具 vivo 互传