文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么备份和恢复MySQL数据库

2024-04-02 19:55

关注

这篇文章主要介绍“怎么备份和恢复MySQL数据库”,在日常操作中,相信很多人在怎么备份和恢复MySQL数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么备份和恢复MySQL数据库”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本教程介绍如何使用mysqldump实用程序从命令行备份和还原MySQL或MariaDB数据库,mysqldump实用程序创建的备份文件基本上是一组可用于重新创建原始数据库的SQL语句,如果不备份数据库,则软件错误或硬盘驱动器故障可能是灾难性的。为了帮助您节省大量时间和挫折,强烈建议您采取预防措施,定期备份MySQL数据库。

您还可以使用mysqldump实用程序将MySQL数据库传输到另一个MySQL服务器。Mysqldump命令语法,在介绍如何使用mysqldump命令之前,让我们先回顾一下基本语法。mysqldump实用程序表达式采用以下形式:

mysqldump [options] > file.sql
options - mysqldump选项
file.sql - 转储(备份)文件

备份单个MySQL数据库
要使用root用户创建名为database_name的数据库的备份并将其保存到名为database_name.sql的文件,您将运行以下命令:
mysqldump -u root -p database_name > database_name.sql
系统将提示您输入root密码。输入它,按Enter键,转储过程将开始。根据数据库大小,该过程可能需要一些时间。
如果您以用于执行导出的同一用户身份登录,并且该用户不需要密码,则可以省略-u和-p选项:
mysqldump database_name > database_name.sql
备份多个MySQL数据库

要使用一个命令备份多个MySQL数据库,您需要使用--database选项,后跟要备份的数据库列表。每个数据库名称必须用空格分隔。
mysqldump -u root -p --database database_name_a database_name_b > databases_a_b.sql
上面的命令将创建一个包含两个数据库的转储文件。
备份所有MySQL数据库,要备份所有MySQL数据库,您将使用--all-databases选项:
mysqldump -u root -p --all-databases > all_databases.sql
与上一个示例相同,上面的命令将创建一个包含所有数据库的转储文件。
将所有MySQL数据库备份到单独的文件
mysqldump实用程序不提供将所有数据库备份为单独文件的选项,但我们可以通过简单的bash FOR循环轻松实现:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do
mysqldump $DB > "$DB.sql";
done
上面的命令将使用数据库名称作为文件名创建所有数据库的单独转储文件。
创建压缩的MySQL数据库备份
如果数据库大小非常大,则压缩输出是个好主意。为此,只需将输出管道传输到gzip实用程序,然后将其重定向到文件,如下所示:
mysqldump database_name > | gzip > database_name.sql.gz
使用时间戳创建备份
如果要在同一位置保留多个备份,则需要将日期添加到备份文件名:
mysqldump database_name > database_name-$(date +%Y%m%d).sql
上面的命令将创建一个具有以下格式的文件database_name-20180617.sql 
如果您使用cronjob自动执行数据库备份,那么您还可以使用以下命令删除超过30天的任何备份:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
当然,您需要根据备份位置和文件名调整命令。要了解有关find命令的更多信息,请使用命令行指南检查我们如何在Linux中查找文件。

恢复MySQL转储
您可以使用mysql工具恢复MySQL转储。在大多数情况下,您需要创建要导入的 数据库。如果数据库已经存在,则需要将其删除。
在以下示例中,第一个命令将创建名为database_name的数据库,然后将dump database_name.sql导入其中:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
从完整的MySQL转储还原单个 MySQL数据库,如果使用-all-databases选项备份所有数据库,并且要从包含多个数据库的备份文件还原单个数据库,请使用--one-database选项,如图所示娄:
mysql --one-database database_name < all_databases.sql

在一个命令中导出和导入MySQL数据库,而不是从一个数据库创建转储文件,然后将备份导入另一个MySQL数据库,您可以使用以下单行:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
上面的命令会将输出传递给 远程主机上的mysql客户端,并将其导入名为remote_database_name的数据库中。在运行该命令之前,请确保远程服务器上已存在该数据库。

到此,关于“怎么备份和恢复MySQL数据库”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯