第十一课:MySQL 数据库备份与恢复

一、MySQL数据库备份与恢复

1、使用SQL语句备份和恢复表数据

1.1、select into...outfile语句

导出备份语句的基本语法结构:

select *

into outfile‘file_name’ [character set charset_name] export_options

| 

into dumpfile‘file_name’

其中,export_options的格式为:

[fields

[terminated by ‘string’]

[[optionally] enclosed by ‘char’]

[escaped by ‘char’]

]

[lines terminated by ‘string’]

■语句的作用:将表中select语句选中的所有数据行写到一个文件中,file_name指定数据备份文件的名称。在文件中,导出数据行会以一定的格式存放,空值用“\N”表示

■导出语句使用outfile关键字时,在export_options中加入两个自选子句,其作用是决定数据行在备份文件中存放的格式:

◆fields子句:在fields子句中有三个亚子句,若使用fields子句则至少要指定一个亚子句。terminated by用来指定字段值之间的符号,如terminated by ‘,’,指定逗号为两个字段值之间的标志。[optionally] enclosed by用来指定包裹文件中字符值的符号,如enclosed by ‘”’,表示文件中字符值放在双引号之间,optionally表示所有的值都放在双引号之间。escaped by用来指定转义字符,如escaped by ‘*’表示将“*”指定为转义字符取代“\”,如空格将表示为“*N”

◆lines子句:lines terminated by指定一个数据行结束的标志,如lines terminated by ‘?’表示一个数据行以“?”作为结束标志

◆若fields和lines子句都不指定,则默认声明的是以下的子句:

fields terminated by ‘\t’ enclosed by ‘’escaped by ‘\\’

lines terminated by ‘\n’

■导出语句使用dumpfile关键字时,导出备份文件里面所有的数据行都会彼此紧挨着放置,即值和行之间没有任何标记

1.2、load data...infile语句

导入回复语句的基本语法结构:

load data [low_priority | concurrent] [local] infile‘file_name.txt’

[replace | ignore]

into table tb_name

[fields

[terminated by ‘string’]

[[optionally] enclosed by ‘char’]

[escaped by ‘char’]

]

[lines

[starting by ‘string’]

[terminated by ‘string’]

]

[ignore number lines]

[(col_name_or_user_var,...)]

[set col_name = expr,...]

■low_priority | concurrent:若指定low_priority,则延迟该语句的执行;若指定concurrent,则当load data正在执行的时候其他线程可以同时使用该表的数据

■local:若指定local,则文件会被客户主机上的客户端读取,并被发送到服务器。文件会被赋予一个完整的路径名称,以指定确切的位置。若没有指定local,则文件必须位于服务器主机上,并且被服务器直接读取

■replace | ignore:若指定replace,则当导入文件中出现与数据库中原有行相同的唯一关键字时,输入行会替换原有行;如果指定ignore,则把与原有行有相同的唯一关键字的输入行跳过

■tb_name:指定需要导入数据的表名,该表必须存在且表结构必须与导入文件的数据行一致

■fields子句:同上面select into...outfile语句类似

■lines子句:terminated by用来指定一行结束的标志;starting by指定一个前缀,导入数据行时忽略数据行中的该前缀和前缀之间的内容。如果某行不包括该前缀,则整行被跳过

■ignore number lines:可以忽略文件的前几行,如ignore 1 lines表示跳过数据备份文件中的第一行

■col_name_or_user_var:若需要载入一个表的部分列,或者文件中字段值顺序与原表中列的顺序不同,就必须指定一个列清单,其中可以包含列名或用户变量

■set子句:可以在导入数据时修改表中列的值

2、使用MySQL客户端实用程序备份与恢复

2.1、使用MySQL客户端实用程序的方法

打开计算机中DOS终端,进入MySQL安装目录下的bin子目录运行MySQL客户端实用目录

2.2、使用mysqldump程序备份数据

mysqldump程序可以备份数据库表结构,还可以备份一个数据库,甚至整个数据库系统

2.2.1、备份表

命令格式为:

mysqldump [options] database [tables] > filename

▷database:指定数据库的名称,后面可以加上需要备份的表名。若在命令中没有指定表名,则该命令会备份整个数据库

▷filename:指定最终备份的文件名

▷使用mysqldump备份数据需要使用一个用户账号连接到数据库服务器。使用参数的格式为:-h [hostname] -u [username] -p[password],-p选项和密码之间不可以有空格,例如:mysqldump -h hostname -u root -p123456 tab_name > c:\backup\file.sql

2.2.2、备份数据库

命令格式:

mysqldump [options] --databases [options] db1 [db2 db3 ...] > filename

2.2.3、备份整个数据库系统

命令格式:

mysqldump [options] --all-databases [options] > filename

2.3、使用mysql命令恢复数据

例如:mysql -u root -p123456 db_name < db_school.sql

2.4、使用mysqlimport程序恢复数据

命令格式为:

mysqlimport [options] database textfile...

▷options:常用的选项有:

●-d、--delete:在导入文本文件之前清空表中所有的数据行

●-l、--lock-tables:在处理任何文件之前锁定所有的表,以保证所有的表在服务器上同步,但对于innodb类型的表则不必进行锁定

●--low-priority、--local、--replace、--ignore:分别对应local data...infile语句中的low_priority、local、replace和ignore关键字

▷database:指定欲恢复的数据库名称

▷textfile:存储备份数据的文本文件名,mysqlimport会剥去文件名的扩展名,如“field.txt”、“field.sql”、“field”都会被导入到名为field的表中

▷和mysqldump程序一样,使用mysqlimport恢复数据时,也需要提供-h、-u、-p选项来连接数据库服务器

3、使用MySQL图形界面工具备份和恢复数据

二、二进制日志文件的使用

1、开启日志文件

1.1、打开MySQL安装目录下的my.ini文件(linux系统为my.cnf文件)

1.2、找到[mysqld]标签,在此标签下添加一行语句:

log-bin[ =filename]

1.3、保存修改,重启MySQL服务器

2、使用mysqlbinlog实用工具处理日志

2.1、查看日志文件

命令格式为:

mysqlbinlog [options] log_files...

2.2、使用二进制日志恢复数据

命令格式:

mysqlbinlog [options] log_files... | mysql [options]

陈双义博客

打赏 支付宝打赏 微信打赏
本文标题:第十一课:MySQL 数据库备份与恢复
本文链接:http://www.chenshuangyi.com/post/609.html
作者授权:除特别说明外,本文由 陈双义 原创编译并授权 陈双义博客 刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享」创作共享协议,转载或使用请遵守署名协议。

为您推荐

干货 | 软件性能测试基本测试概念

干货 | 软件性能测试基本测试概念

一、性能测试的目的1、 评估当前系统2、 寻找瓶颈3、 预测未来性能二、性能测试的前提:接...

  第十二课:MySQL 数据库的应用编程

第十二课:MySQL 数据库的应用编程

一、使用PHP进行MySQL数据库应用编程1、建立与MySQL数据库服务器的连接1.1、使用函数mysql_connec...

2019-03-21 标签:MySQL数据库软件测试
第十课:MySQL 访问控制与安全管理

第十课:MySQL 访问控制与安全管理

一、用户账户管理1、创建账户基本语法结构:create user user_specification[,us...

2019-03-20 标签:MySQL数据库软件测试
第九课:MySQL 存储过程和存储函数

第九课:MySQL 存储过程和存储函数

一、存储过程存储过程是一组为了完成某特定功能的SQL语句集。一个存储过程是一个可编程的函数,同时可以看做是在数据库编程中...

2019-03-18 标签:MySQL数据库软件测试
第八课:MySQL 事件

第八课:MySQL 事件

一、事件事件和触发器相似,都是在某些事情发生的时候启动,事件也叫作临时触发器事件基于特定时间周期触发来执行某些任务,而触...

2019-03-05 标签:MySQL数据库软件测试
第七课:MySQL 触发器

第七课:MySQL 触发器

一、触发器触发器是一个被指定关联到一个表的数据库对象。触发器用于保障数据库中数据的完整性,以及多个表之间数的一致性。触发...

2019-03-05 标签:MySQL数据库软件测试
第六课:MySQL 视图

第六课:MySQL 视图

一、视图视图是从一个或多个表或者视图中导出的表,也包含一系列带有名称的数据列和若干条数据行视图不同于数据库真实存在的表:...

2019-03-05 标签:MySQL数据库软件测试
第五课:MySQL 索引

第五课:MySQL 索引

一、索引数据表查询操作主要的两种搜索方式:一种全表扫描、检索,另一种利用数据表上建立的索引进行扫描MySQL主要的几种索...

2019-03-05 标签:MySQL数据库软件测试

发表评论

«   2019年6月   »
12
3456789
10111213141516
17181920212223
24252627282930
站点信息
  • 文章总数:864
  • 页面总数:10
  • 分类总数:19
  • 标签总数:1411
  • 评论总数:149
  • 浏览总数:360163

当前非电脑浏览器正常宽度,请使用移动设备访问本站!