导读

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

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

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

一、数据备份

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

基础语法格式:

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

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

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

(1)备份单个数据库

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

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

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

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

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

(3) 备份多个数据库

语法格式:

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

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

实例如下:

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

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

(4)备份所有数据库

语法格式:

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

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

实例如下:

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

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

二、数据恢复

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

(1) 直接执行文件

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

基本语法:

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 命令还原

语法格式:

source filename

实例如下:

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

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

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

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

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