MySQL数据库备份

在操作数据库时,难免发生一些意外造成数据丢失
比如,突然停电、管理员的操作失误,都可能导致数据的丢失

为了确保数据的安全性,需要定期对数据库进行备份,这样,当遇到数据库中数据丢失,或者出错的情况,就可以将数据进行还原,从而,最大限度的降低损失

备份

日常生活中,经常为家的房门多配几把钥匙,为爱车准备一个别提,这些事情就是在做备份
MySQL中,提供了mysqldump命令,可以实现数据的备份
mysqldump可以备份,单个数据库、多个数据库和所有数据库
备份单个数据库

语法格式
Mysqldump - u username -p password dbname [tbname1 [tbname2……]] > filename.sql

参数说明

-u,后面的参数username,表示用户名
-p,后面的参数password,表示登录密码
dbname,表示要备份的数据库名称
tbname,表示数据库中的表名,可以指定一个或者多个表,多个表名之间用空格分隔,如果,不指定则备份整个数据库
filename.sql,表示备份文件的名称,文件名前面,可以加上绝对路径

注意
使用mysqldump命令备份数据库时,直接在DOS命令窗口中执行改名了即可,不需要登录到MySQL数据库

首先,创建一个chapter08数据库
在数据库中,创建student表,插入相应数据

MySQL数据库备份

在C盘创建一个backup文件夹,用于存储备份文件

MySQL数据库备份

重新开启一个DOS命令窗口,不用需要登陆MySQL

mysqldump命令

使用mysqldump命令,备份chapter08数据库
Mysqldump -uroot -p chapter08 > C:/backup/chapter08.sql

MySQL数据库备份

备份之后,生成一个chapter08.sql的文件

MySQL数据库备份

备份之后,生成一个chapter08_20170730.sql的文件
用记事本打开该文件

MySQL数据库备份

可以看出
备份文件中,包含mysqldump的版本号、MySQL的版本号、主机名称、备份的数据库名称、以及一些SET语句、CREATE语句、INSERT语句、注释信息等

其中
以–开头,都是SQL的注释
以/!开头,/结尾,都是可执行的MySQL注释,这些语句可以被MySQL执行,但是,在其他数据库管理系统中,将被作为注释忽略,可以提高数据库的可移植性

注意
以/!40101开头,以/结尾,的注释语句
40101,是MySQL数据库的版本号,相当于MySQL 4.1.1
在还原数据库时
如果,当前MySQL的版本比MySQL 4.1.1高,/!40101和/之间的内容,被当作SQL命令来执行
如果,比当前版本低,/!40101和/之间的内容,就被当作注释

备份多个数据库

mysqldump命令,不仅可以备份一个数据库
还可以同时,备份多个数据库

语法格式
Mysqldump -uusername -ppassword –database dbname1 [dbname2 dbname3 ……] > filename.sql
参数说明
–database,后面至少,应指定一个数据库名称
如果,有多个数据库,名称之间使用空格隔开

备份所有数据库

mysqldump命令,备份所有数据库时
只需在该命令后使用–all-databases参数,即可

语法格式
Mysqldump -uusername -ppassword –all-databases > filename.sql
注意
使用–all-databases备份所有的数据库,在还原数据库时,不需要创建数据库并指定要操作的数据库,因为,对应的备份文件中,包含CREATE DATABAES语句和USE语句