数据备份

DANGER

以下备份相关命令均要求在docker-compose.yml文件所在目录执行

备份完整数据库

docker compose exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' >./all-$(date +%Y%m%d-%H%M%S).sql

备份文件将存储到当前目录下名为 all-日期.sql 的文件中

恢复完整数据库

注意修改all-日期.sql为实际备份文件名

docker compose exec -T mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' <./all-日期.sql

备份指定数据库

share 使用的数据库默认名称为 cool,以下命令将备份数据库cool

docker compose exec mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" cool' >./cool-$(date +%Y%m%d-%H%M%S).sql

恢复指定数据库

注意修改cool-日期.sql为实际备份文件名

docker compose exec -T mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" cool' <./cool-日期.sql

备份完整项目

share 使用docker-compose.yml文件进行项目配置,以下命令将备份整个项目,注意修改/path/to/backup为实际要存储备份文件的目录

DATE=$(date +%Y%m%d-%H%M%S)
docker-compose down
tar -zcvf share-$DATE.tar.gz .
mv share-$DATE.tar.gz /path/to/backup
docker-compose up -d

在新环境恢复项目

注意修改share-日期.tar.gz为实际备份文件名

mkdir chatgpt-share
mv share-日期.tar.gz chatgpt-share
cd chatgpt-share
tar -zxvf share-日期.tar.gz
rm share-日期.tar.gz
docker-compose up -d