一、前言
开发过程中,最怕的是遇到删库跑路的叼毛,那心情,你懂的!!因此,为了不让自己的拳头蠢蠢欲动,我们就要进行数据库的备份。
二、使用mysqldump命令备份
1、mysqldump命令比较灵活,既可以导出所有表结构和数据,又可以只导出表结构或数据
1.1、查看当前启动的mysql运行容器
docker ps
1.2、导出数据中所有的表结构和数据
docker exec -it (容器名或ID) mysqldump -u (用户名)-p (密码) (数据库名)>(导出后文件存放的路径和格式)
docker exec -it mysql mysqldump -u root -p 123456 db1> /vim/data/mysql/db1.sql
1.3、只导表数据不导表结构
docker exec -it (容器名或ID) mysqldump -t -u (用户名)-p (密码) (数据库名)>(导出后文件存放的路径和格式)
docker exec -it mysql mysqldump -t -u root -p 123456 db1> /vim/data/mysql/db1.sql
1.4、只导表结构不导表数据
docker exec -it (容器名或ID) mysqldump --opt -d -u (用户名)-p (密码) (数据库名)>(导出后文件存放的路径和格式)
docker exec -it mysql mysqldump --opt -d -u root -p 123456 db1> /vim/data/mysql/db1.sql
1.5、导出特定表的结构
docker exec -it (容器名或ID) mysqldump -u (用户名)-p (密码) -B (数据库名)--table (表名)>(导出后文件存放的路径和格式)
docker exec -it mysql mysqldump -u root -p 123456 -B db1 --table user>/vim/data/mysql/user.sql
1.6、把导出的表再导入mysql中
docker cp (要复制的文件路径) (容器名称或ID):(要保存文件的路径)
docker cp /docker/data/user.sql mysql:/vim/data/mysql/user.sql
进入mysql容器中
docker exec -it (容器名或容器ID) /bin/bash;
进入数据库
mysql -u (用户名) -p (密码)
导入sql文件
source /vim/data/mysql/user.sql