下面使用docker 部署的mysql8.0 作为示例 ,使用 mysqldump 导出示例
# 首先进入 容器中
[root@master mysql8]# docker exec -it 4832031fd82a bash
# 进入容器之后可以直接进行登录数据库并进行备份导出
# mysqldump -p数据库端口 -u用户 -p密码 --databases 导出的数据库 > 导出的文件
# 注意如果只是想导出表 可以根据 修改参数进行导出 这里只是列举导出整个库为例,多个数据库导 # 出可以用 空格 隔开
root@4832031fd82a:/# mysqldump -p3306 -uroot -proot123 --databases dev_novel > db_all.sql
下面是根据导出之后的文件进行数据恢复,使用 source 进行恢复
#第一步还是先进入容器
[root@master mysql8]# docker exec -it bf993204c93b bash
# 这里不能直接在 -p 后面输入密码显示明文,否则会报错提示 直接输入明文密码不安全
root@bf993204c93b:/home# mysql -uroot -p
# 进入数据库之后 执行 /home/db_all.sql 这个是导出的 数据文件
mysql> source /home/db_all.sql
# 使用docker 部署的数据库导出文件之后需要注意,因为是在容器内部进行的数据导出,所以文件还是在容器内部,导出成功之后 需要把数据文件从容器内部拷贝出来 到宿主机,用于后面的数据迁移
拷贝命令:docker cp 容器id:/home/db_all.sql 宿主机目录
在数据恢复时可以通过挂在命令直接把 数据文件挂在到对应的数据库中,然后再容器内部登录数据库执行命令恢复即可
如果是直接在linux 上安装的mysql 直接 执行命令就行
导出:mysqldump -p数据库端口 -u用户 -p密码 --databases 导出的数据库 > 导出的文件
导入:mysql> source /home/db_all.sql