您好,欢迎访问三七文档
第8章备份与恢复10网管8.1备份和恢复概述数据库中的数据丢失或被破坏原因:(1)计算机硬件故障。(2)软件故障。(3)病毒。(4)误操作。(5)自然灾害。(6)盗窃等等。•数据库恢复就是当数据库出现故障时,将备份的数据库加载到系统,从而使数据库恢复到备份时的正确状态。•数据库的恢复是以备份为基础的:通过导出数据或者表文件的拷贝来保护数据。8.2数据库备份和恢复的方法8.2.1使用SQL语句备份和恢复表数据•用户可以使用SELECTINTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOADDATA…INFILE语句恢复数据。•这种方法只能导出或导入数据的内容,不包括表的结构。•如果表的结构文件损坏,则必须先恢复原来的表的结构,然后再恢复表数据。SELECTINTO…OUTFILE格式SELECT*FROMtable_nameINTOOUTFILE'file_name'export_options其中,export_options为:[FIELDS[TERMINATEDBY‘string’][[OPTIONALLY]ENCLOSEDBY'char'][ESCAPEDBY'char']][LINESTERMINATEDBY'string']注意:若都不设置,则为默认值。设置字段值分隔符设置包裹字符串的符号设置转义字符设置一行的结束标志LOADDATA…INFILE格式LOADDATAINFILE'file_name.txt‘[REPLACE|IGNORE]INTOTABLEtbl_name[FIELDS[TERMINATEDBY'string'][[OPTIONALLY]ENCLOSEDBY'char'][ESCAPEDBY'char']]注意:•这里的导入语句的设置,要与导出语句的设置一致。•导入的表在数据库中必须是已经存在的表。设置字段值分隔符设置包裹字符串的符号设置转义字符【例8.1】备份XSCJ数据库中的KC表中数据到D盘FILE目录中,要求:•字段值如果是字符就用双引号标注,•字段值之间用逗号隔开,•每行以“?”为结束标志。最后将备份后的数据导入到一个和KC表结构一样的空表COURSE表中。首先导出数据:USEXSCJ;SELECT*FROMKCINTOOUTFILE'D:/FILE/myfile1.txt'FIELDSTERMINATEDBY','OPTIONALLYENCLOSEDBY''LINESTERMINATEDBY'?';创建一个和KC表结构一样的空表COURSE表:Createtablecourselikekc;文件备份完后将文件中的数据导入到COURSE表中:LOADDATAINFILE'D:/FILE/myfile1.txt'INTOTABLECOURSEFIELDSTERMINATEDBY','OPTIONALLYENCLOSEDBY''LINESTERMINATEDBY'?';P223实验八2.用SQL语句进行数据库备份和恢复。8.2.2使用客户端程序备份和恢复数据•mysqldump程序•mysqlimport程序使用客户端的方法如下。打开DOS终端,进入BIN目录,路径为:C:\ProgramFiles\MySQL\MySQLServer5.1\bin后面介绍的客户端命令都在此处输入,界面如图所示。此处输入客户端命令1.使用mysqldump备份数据mysqldump客户端可用于备份数据。包括:•可以备份数据库表的数据内容,•可以备份数据库表的结构,•可以备份一个或多个数据库,•可以备份整个数据库系统.(1)备份表命令格式:mysqldump-h[hostname]-u[username]-p[password]db_name[tables]filename•备份数据时需要使用用户账号连接到服务器:-h后是主机名,-u后是用户名,-p是用户密码注意:•-p选项和密码之间不能有空格。•如果是本地服务器,-h选项可以省略。•文件默认的保存路径是mysql的bin目录。即C:\ProgramFiles\MySQL\MySQLServer5.1\bin用户也可以指定具体的保存路径。(1)备份表【例8.2】使用mysqldump备份XS表和KC表。具体命令如下:•mysqldump-hlocalhost-uroot-p123456XSCJXSKCtwotables.sql•说明:如果是本地服务器,-h选项可以省略。若在命令中没有表名,则备份整个数据库。(2)备份数据库mysqldump程序还可以将一个或多个数据库备份到一个文件中。命令格式:mysqldump[options]--databasesDB1[DB2DB3...]filenameOptions具体格式:-h后是主机名,-u后是用户名,-p是用户密码注意:文件默认的保存路径是mysql的bin目录。即C:\ProgramFiles\MySQL\MySQLServer5.1\bin用户也可以指定具体的保存路径。【例8.3】备份XSCJ数据库和mysql数据库到D盘FILE文件夹下。命令如下mysqldump-uroot-p123456--databasesXSCJmysqlD:/FILE/data.sql(2)备份数据库mysql还能备份整个数据库系统,即系统中的所有数据库。【例8.4】备份MySQL服务器上的所有数据库。使用如下命令:mysqldump-uroot-p123456--all-databasesall.sql•使用--tab=选项,分开数据和创建表的SQL语句。•【例8.5】将XSCJ数据库中所有表的表结构和数据都分别备份到D盘FILE文件夹下。命令如下:mysqldump-uroot-p123456--tab=D:/FILE/XSCJ其效果是在目录FILE中生成6个文件,分别是xs.txt、xs.sql、kc.txt、kc.sql、xs_kc.txt和xs_kc.sql。(3)恢复数据库mysqldump程序备份的文件中存储的是SQL语句的集合,用户可以将这些语句还原到服务器中以恢复一个损坏的数据库。【例8.6】假设XSCJ数据库损坏,用备份文件将其恢复。备份XSCJ数据库的命令为:mysqldump-uroot-p123456XSCJXSCJ.sql恢复命令为:mysql-uroot-p123456XSCJXSCJ.sql备份默认路径C:\ProgramFiles\MySQL\MySQLServer5.1\bin打开DOS终端,进入BIN目录,路径为:C:\ProgramFiles\MySQL\MySQLServer5.1\bin2.使用mysqlimport恢复数据•mysqlimport客户端可以用来恢复表中的数据。它大多数选项直接对应LOADDATAINFILE语句。•mysqlimport命令格式为:mysqlimport[options]db_namefilename...•对于在命令行上命名的每个文本文件,mysqlimport剥去文件名的扩展名,并使用它决定向哪个表导入文件的内容。•例如,“patient.txt”、“patient.sql”和“patient”都会被导入名为patient的表中。•所以备份的文件名应根据需要恢复表命名。【例8.8】恢复XSCJ数据库中表XS的数据,保存数据的文件为XS.txt,命令如下:mysqlimport-uroot-p123456--low-priority--replaceXSCJXS.txtmysqlimport也需要提供-u、-p选项来连接服务器。mysqlimport是通过执行LOADDATAINFILE语句来恢复数据库的,所以上例中备份文件未指定位置的默认是在MySQL的DATA目录对应的数据库中。如果不在则要指定文件的具体路径。8.2.3使用MySQL界面工具进行备份和恢复要备份的数据库列表点击保存选择需要备份的表文件P223实验八3.使用客户端工具备份和恢复表(1)(2)(3)使用mysqlimport恢复数据数据备份:Select*fromsalaryIntooutfile‘d:/file/salary.txt’;数据恢复:mysqlimport-uroot-p123456--low-priority--replaceyggld:/file/salary.txt
本文标题:第八章 mql安全
链接地址:https://www.777doc.com/doc-3244562 .html