Lidong's blog

docker 中 mysql 数据库导出导入

因为做 wordpress 的数据库备份,通过 docker 使用了 mysql 导入导出,记录一下与 mysql 导入导出的操作。

1. 导出

导出所有数据库

1
2
3
$ sudo docker exec {cxontainerID} sh -c \
'exec mysqldump --all-databases -uroot -p "$MYSQL_ROOT_PASSWORD"' \
> /some/path/on/your/host/all-databases.sql

导出指定数据库

1
2
3
$ sudo docker exec {containerID or name} sh -c \
'exec mysqldump --databases wordpress -uroot -p "$MYSQL_ROOT_PASSWORD"' \
> /some/path/on/your/host/wordpress.sql

如导出指定容器ID为9244及指定数据库名 wordpress

1
2
3
$ sudo docker exec 9244 sh -c \
'exec mysqldump --databases wordpress -uroot -pmy-secret-pw' \
> /var/backup/wordpress.sql

2. 导入

首先要创建一个container

1
$ sudo docker run --name some-mysql -v /var/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

导入数据

1
$ sudo docker exec -i some-mysql mysql -uroot -pmy-secret-pw < /var/backup/wordpress.sql

验证

1
$ sudo docker exec -it some-mysql /bin/bash mysql -uroot -pmy-secret-pw
1
2
3
4
5
show databases;

use wordpress;

show tables;

检查一下数据表。

参考

  1. 关于导入导出docker中的mysql数据库
  2. library/mysql - Docker Hub

本文链接: