docker hub mysql映象說明
Creating database dumps
Most of the normal tools will work, although their usage might be a little convoluted in some cases to ensure they have access to the mysqld
server. A simple way to ensure this is to use docker exec
and run the tool from the same container, similar to the following:
備份所有資料
$ 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
Restoring data from dump files
For restoring data. You can use docker exec
command with -i
flag, similar to the following:
$ 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
2、備份壓縮
匯出的資料有可能比較大,不好備份到遠端,這時候就需要進行壓縮
格式:mysqldump -h主機名 -P埠 -u使用者名稱 -p密碼 –database 資料庫名 | gzip > 檔名.sql.gz
mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz
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
本作品採用《CC 協議》,轉載必須註明作者和本文連結