假设数据库一开始运行的时候,代码如下所示:

docker run -d \
  --name deeptest-mysql \
  -e MYSQL_ROOT_PASSWORD=deeptest123456 \
  -e MYSQL_DATABASE=deeptest \
  -p 3307:3306 \
  -v /data/mysql:/var/lib/mysql \
  mysql:8.0

下面是数据库迁移的步骤

  1. 先暂停删除旧容器
docker stop deeptest-mysql
docker rm deeptest-mysql
  1. 启动临时容器
docker run -d \
  --name temp-mysql \
  -e MYSQL_ROOT_PASSWORD=deeptest123456 \
  -v /data/mysql:/var/lib/mysql \
  mysql:8.0

  1. 导出临时数据库
docker exec -i temp-mysql \
  mysqldump -uroot -pdeeptest123456 --all-databases > /data/deeptest_backup.sql

  1. 停止并且删除临时容器
docker stop temp-mysql
docker rm temp-mysql

  1. 创建并且新建目录,启动新容器
mkdir -p /software/mysoftware/data/mysql
sudo chown -R 999:999 /software/mysoftware/data/mysql
sudo chmod -R 755 /software/mysoftware/data/mysql

docker run -d \
  --name deeptest-mysql \
  -e MYSQL_ROOT_PASSWORD=deeptest123456 \
  -e MYSQL_DATABASE=deeptest \
  -p 3307:3306 \
  -v /software/mysoftware/data/mysql:/var/lib/mysql \
  mysql:8.0

  1. 导入旧数据
docker exec -i deeptest-mysql \
  mysql -uroot -pdeeptest123456 < /data/deeptest_backup.sql

最后,我们可以利用Vscode MySQL插件进行连接查看
在这里插入图片描述

更多推荐