导读
数据库作为一个非常重要的数据容器,作为一名管理员就应该采取一些措施来保证数据库的安全,避免可能因 停电、物理故障、误删操作等等因素导致的数据丢失。
为了保证数据的安全,最有效的方法就是定期对数据库进行备份,以便万一真的发生了数据丢失可以使用备份的数据进行还原,将损失降到最低。
本文将讲解如何对 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 选择要还原的数据库。