怎么备份和恢复MySQL数据库

60次阅读
没有评论

共计 2376 个字符,预计需要花费 6 分钟才能阅读完成。

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

本教程介绍如何使用 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 数据库”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2376字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)