# 导读

数据库作为一个非常重要的数据容器,作为一名管理员就应该采取一些措施来保证数据库的安全,避免可能因 停电、物理故障、误删操作等等因素导致的数据丢失。

为了保证数据的安全,最有效的方法就是定期对数据库进行备份,以便万一真的发生了数据丢失可以使用备份的数据进行还原,将损失降到最低。

本文将讲解如何对 MySQL 数据库进行数据备份:

# 一、数据备份

在手工指令备份数据库过程中,mysql 提供了 `mysqldump` 命令用于备份指定数据库、备份所有数据库、备份指定数据表 等功能。

基础语法格式:

```mysql
mysqldump -u user -h host -p password dbname [tbname [,tbname1...]] > filename.sql
```

说明:1、如果是数据库客户端和服务端在同一主机上,可缺省 host 项;反之,远程备份数据库时是要指明连接数据库所在的主机地址。2、备份文件以 `.sql` 后缀名结尾。

更多操作,可使用: `mysqldump --help` 指令获得详细的帮助信息。

## (1)备份单个数据库

功能:备份 mysql 中的 librarys 数据库,并将其文件存放在 home 目录下。

```shell
root@tai-PC:~# mysqldump -u root -p librarys > /home/librarys_20180810.sql
Enter password:
```

## (2) 备份某数据库的某数据表

功能:备份 mysql 中 librarys 库中的 books 数据表,并将文件存放于 /home 目录下。

```shell
root@tai-PC:~# mysqldump -u root -p librarys books > /home/books_20180810.sql
Enter password:
```

## (3) 备份多个数据库

语法格式:

```mysql
mysqldump -u user -h host -p --databases [dbname [,dbname1...]] > filename.sql
```

说明:`--databases` 参数后至少指定一个数据库的名称,多个数据库名称之间用**空格**隔开。

实例如下:

功能: 备份 mysql 中的 librarys 和 test 数据库,并存放在 /home 目录下。

```shell
root@tai-PC:~# mysqldump -u root -p --databases librarys test > /home/databases_20180810.sql
Enter password:
```

## (4)备份所有数据库

语法格式:

```mysql
mysqldump -u user -h host -p --all-databases > filename.sql
```

说明:在 `mysqldump` 语句中加入 `--all-databases` 参数,即可备份所有的数据库。

实例如下:

功能:备份 mysql 下的所有数据库,并将其文件存放在 /home 目录下。

```shell
root@tai-PC:~# mysqldump -u root -p --all-databases > /home/all_databases_20180810.sql
Enter password:
```

# 二、数据恢复

有了备份的数据文件后,一旦发生意外,接下来要操作的就是还原数据库的数据了,接下来介绍两个方法来还原数据库的数据。

## (1) 直接执行文件

使用 `mysqldump` 命令备份的数据库文件,其文件内容就是各种的执行语句和数据。此时只需执行这些语句(即执行该文件),就可以重新生成这些数据,也就是数据还原的过程了。

基本语法:

```mysql
mysql -u user -p [dbname] < filename.sql
```

说明:还原数据库数据时,指定的[dbname]数据库必须事先存在。

提示:在还原数据前,可以使用文本编辑器查看 **要还原的备份文件**,其中包含了很多的原来相关信息,包括:

原 mysqldump工具版本、原系统信息、原主机信息、数据库名、原数据库版本信息....

> -- MySQL dump 10.13 Distrib 5.5.56, for Linux (i686)
> \--
> -- Host: localhost Database: wordpress
>
> ---
>
> -- Server version 5.5.56-log

## (2)使用 source 命令还原

语法格式:

```shell
source filename
```

实例如下:

功能:登录 mysql , 并将数据还原到

```mysql
-- 选择要恢复到的数据库
mysql> use librarys;
Database changed

-- 使用 source 命令导入备份文件
mysql> source /home/librarys_20180810.sql
```

PS:1、执行此命令还原数据库时,程序会返回每一条语句所执行的结果;2、执行前,必须先使用 use 选择要还原的数据库。

最后修改:2021 年 04 月 02 日
如果觉得我的文章对你有用,请随意赞赏