Loading...

docker 中 MySQL 备份及恢复

数据库1年前 (2024)发布 ypng
6 0 0

备份所有数据

docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql

备份指定数据库

docker exec some-mysql sh -c 'exec mysqldump --databases db1 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/db1.sql

恢复数据。您可以使用带有-i标志的docker exec命令,类似于以下内容

docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql

单个数据库恢复

# 查看备份的数据库sql
[root@VM_0_9_centos sqlbackup]# ls
76base_20200508.sql backup_database.sh backup.log clear_history_backup.sh clear.log pizza_20200508.sql

# 复制备份过的sql到mysql容器的根目录
[root@VM_0_9_centos sqlbackup]# docker cp ./76base_20200508.sql mysql_5.7:/

# 进入mysql容器
[root@VM_0_9_centos sqlbackup]# docker exec -it mysql_5.7 /bin/bash

# 登录msyql
root@3527bdeca151:/# mysql -uroot -proot

# 切换到要恢复的数据库
mysql> use 76base;
Database changed

# 恢复数据库
mysql> source /76base_20200508.sql

命令参数详解

1、备份命令

格式:mysqldump -h 主机名 -P 端口 -u 用户名 -p 密码 –database 数据库名 > 文件名.sql

mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql

 

3、备份同个库多个表

格式:mysqldump -h 主机名 -P 端口 -u 用户名 -p 密码 –database 数据库名 表 1 表 2 …. > 文件名.sql

mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql```

4、同时备份多个库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

```shell
mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql

5、备份实例上所有的数据库

格式:mysqldump -h 主机名 -P 端口 -u 用户名 -p 密码 –all-databases > 文件名.sql

mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql

6、备份数据出带删除数据库或者表的 sql 备份
格式:mysqldump -h 主机名 -P 端口 -u 用户名 -p 密码 –add-drop-table –add-drop-database 数据库名 > 文件名.sql

mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql

7、备份数据库结构,不备份数据

格式:mysqldump -h 主机名 -P 端口 -u 用户名 -p 密码 –no-data 数据库名 1 数据库名 2 数据库名 3 > 文件名.sql

mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql

 

原文地址:https://learnku.com/articles/44349

© 版权声明

相关文章

暂无评论

暂无评论...