MySQL使用dump备份以及恢复备份的案例

 更新时间:2026年10月28日 09:14:31   作者:乐小天  
mysqldump是MySQL自带的逻辑备份工具,核心用法就两条命令:备份用 mysqldump,恢复用 mysql,‌ 备份时它把表结构和数据翻译成 SQL 脚本,恢复时重新执行脚本即可,‌‌本文介绍MySQL使用dump备份以及恢复备份的案例,感兴趣的朋友一起看看吧

MySQL使用dump备份以及恢复备份

项目中需要对mysql数据进行备份以及恢复。这里记录一个docker部署的mysql数据库用dump全量备份的案例。

注意,用dump备份时,所有服务是停止的,避免备份时写入操作引起的数据问题。mysql镜像时latest版本,Server version: 8.0.27 MySQL Community Server - GPL。

所有数据库备份

docker exec -it mysql mysqldump -uroot -p123 -A > all.sql

-uroot指使用root用户;

-p123指数据库密码是123;

-A备份所有数据库,导出的sql包含了创建数据库的语句,详情见附录1;

all.sql备份的文件名,此处文件备份到当前目录。

执行结束后当前目录会有all.sql文件,可以使用cat all.sql查看里面的内容。

恢复备份

恢复备份命令如下:

docker exec -i mysql mysql -uroot -p123 < all.sql

注意1:这个命令不要-t,否则会报the input device is not a TTY。

注意2:高版本(据说2.5.0版本以后)会报mysql: [Warning] Using a password on the command line interface can be insecure.。不能在命令行写密码。

详情查看官方文档6.1.2.1 End-User Guidelines for Password Security。

方法1:使用config_editor

使用下面命令设置登录账号密码。

#设置登录配置
mysql_config_editor set --login-path=login --user=root --password
#查看
mysql_config_editor print --all
---
[login]
user = "root"
password = *****
---
#登录
mysql --login-path=login

此方法在容器内部是可以正常登录的,但在容器外部会报错。

docker exec -it mysql mysql mysql --login-path=login
#mysql: [ERROR] unknown variable 'login-path=login'.

方法2:-p 不输入密码

该方法是使用交互式提供密码。-p或者--password后不要输入密码,回车后命令行会出现交互输入方式。

mysql -uroot -p

此方法如果是用脚本程序执行的话,避免不了要输入密码。

方法3:my.cnf配置账号密码

在/etc目录下有个my.conf文件,在该文件里配置账号密码。

此方法测试有效。

详情查看官方文档6.1.2.1 End-User Guidelines for Password Security。

镜像没有安装vim,我这里是把配置文件拷贝出来,改好再拷贝回去。

# 从容器里拷贝回来
docker cp mysql:/etc/mysql/my.conf ./
# 编辑
vi my.conf
---
[client]
host = localhost
user = root
password = '123'
---
# 拷贝回容器
docker cp ./my.conf mysql:/etc/mysql/
# 备份
docker exec -it mysql mysqldump --defaults-extra-file=/etc/mysql/my.cnf -A > ./all.sql
# 恢复
docker exec -i mysql mysql --defaults-extra-file=/etc/mysql/my.cnf < ./all.sql

方法4:JDBC建立连接,Java方式备份

利用JDBC连接,将备份脚本拷贝进容器,然后用jdbc执行source命令恢复备份。

为了省去拷贝的步骤,最好在创建容器时将mysql容器的卷映射到宿主机器上(防止重新创建容器导致备份丢失)。

到此这篇关于MySQL使用dump备份以及恢复备份的案例的文章就介绍到这了,更多相关mysql dump备份内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql 5.7.20 win64 安装及配置方法

    mysql 5.7.20 win64 安装及配置方法

    这篇文章主要介绍了mysql 5.7.20 win64 安装及配置方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • MySQL联表查询的简单示例

    MySQL联表查询的简单示例

    这篇文章主要给大家介绍了关于MySQL联表查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • mysql signed unsigned和zerofill使用与区别

    mysql signed unsigned和zerofill使用与区别

    mysql中有符号signed,无符号unsigned与零填充zerofill,本文主要介绍了mysql signed unsigned和zerofill使用与区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • mysql模糊查询like和regexp小结

    mysql模糊查询like和regexp小结

    在mysql中实现模糊查询有两种方法一种是LIKE/NOT LIKE,另一种是REGEXP/NOT REGEXP方法,下面我来给大家介绍它们的用法,希望此教程对各位同学会有所帮助。
    2014-09-09
  • Redis什么是热Key问题以及如何解决热Key问题

    Redis什么是热Key问题以及如何解决热Key问题

    这篇文章主要介绍了Redis什么是热Key问题以及如何解决热Key问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • MySQL半同步复制与GTID实战指南

    MySQL半同步复制与GTID实战指南

    文章主要介绍了半同步复制和GTID的原理、配置、使用场景和最佳实践,文章还详细描述了启用和测试半同步复制的方法,以及在生产环境中推荐的配置策略,感兴趣的朋友一起看看吧
    2026-04-04
  • CentOS7下二进制安装mysql 5.7.23

    CentOS7下二进制安装mysql 5.7.23

    这篇文章主要为大家详细介绍了CentOS7下二进制安装mysql 5.7.23,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • mysql select语句操作实例

    mysql select语句操作实例

    这篇文章主要介绍了mysql select语句操作实例,本文给出了ORDER BY查询、GROUP BY查询、LIMIT查询、UNION等语句的实例,需要的朋友可以参考下
    2014-12-12
  • mysql 5.7.13 安装配置方法图文教程(win10 64位)

    mysql 5.7.13 安装配置方法图文教程(win10 64位)

    这篇文章主要为大家分享了win10 64位下mysql 5.7.13 安装配置方法图文教程,感兴趣的朋友可以参考一下
    2017-02-02
  • MySQL的子查询及相关优化学习教程

    MySQL的子查询及相关优化学习教程

    这篇文章主要介绍了MySQL的子查询及相关优化学习教程,使用子查询时需要注意其对数据库性能的影响,需要的朋友可以参考下
    2015-11-11

最新评论