6.2.2数据库备份的方法一、准备工作#建立数据库CREATEDATABASEbooksDB;#打开数据库usebooksDB;#创建数据库中的表并插入记录创建book表CREATETABLEbooks(bk_idINTNOTNULLPRIMARYKEY,bk_titleVARCHAR(50)NOTNULL,copyrightYEARNOTNULL);插入记录INSERTINTObooksVALUES(11078,'LearningMySQL',2010),(11033,'StudyHtml',2011),(11035,'Howtousephp',2003),(11072,'Teachyouselfjavascript',2005),(11028,'LearingC++',2005),(11069,'MySQLprofessional',2009),(11026,'GuidetoMySQL5.5',2008),(11041,'InsideVC++',2011);创建authors表CREATETABLEauthors(auth_idINTNOTNULLPRIMARYKEY,auth_nameVARCHAR(20),auth_genderCHAR(1));插入记录INSERTINTOauthorsVALUES(1001,'WriterX','f'),(1002,'WriterA','f'),(1003,'WriterB','m'),(1004,'WriterC','f'),(1011,'WriterD','f'),(1012,'WriterE','m'),(1013,'WriterF','m'),(1014,'WriterG','f'),(1015,'WriterH','f');创建authorbook表CREATETABLEauthorbook(auth_idINTNOTNULL,bk_idINTNOTNULL,PRIMARYKEY(auth_id,bk_id),FOREIGNKEY(auth_id)REFERENCESauthors(auth_id),FOREIGNKEY(bk_id)REFERENCESbooks(bk_id));插入记录INSERTINTOauthorbookVALUES(1001,11033),(1002,11035),(1003,11072),(1004,11028),(1011,11078),(1012,11026),(1012,11041),(1014,11069);二、备份数据库1、备份数据库步骤:(1)进入Windows的命令提示符界面:附件—命令提示符;或运行—cmd(2)进入MySQL目录下的bin文件夹:C:\DocumentsandSettings\AdministratorcdC:\ProgramFiles\MySQL\MySQLServer5.1\bin(3)导出数据库:mysqldump-u用户名-p数据库名导出的文件名2、实例例1使用mysqldump命令备份数据库中的所有表mysqldump-uroot-pbooksdbC:/backup/booksdb_20110101.sql例2备份booksDB数据库中的books表mysqldump-uroot-pbooksDBbooksC:/backup/books_20110101.sql例3使用mysqldump备份booksDB和test数据库mysqldump-uroot-p--databasesbooksDBtestC:\backup\books_testDB_20110101.sql例4使用mysqldump备份服务器中的所有数据库mysqldump-uroot-p--all-databasesC:/backup/alldbinMySQL.sql例5使用mysqlhotcopy备份test数据库到/usr/backup目录下mysqlhotcopy-uroot-ptest/usr/backup6.2.3数据恢复的方法实例:例6使用mysql命令将C:\backup\booksdb_20110101.sql文件中的备份导入到数据库中mysql-uroot-pbooksDBC:/backup/booksdb_20110101.sql例7使用root用户登录到服务器,然后使用souce导入本地的备份文件booksdb_20110101.sqlusebooksdb;sourceC:/backup/booksdb_20110101.sql例8从mysqlhotcopy拷贝的备份恢复数据库cp–R/usr/backup/testusr/local/mysql/data6.2.4数据库迁移实例:例9将主机上。在主机上执行的命令如下:mysqldump-h|mysql-h表的导入与导出实例:1、使用select语句和load语句导入和导出例10使用SELECT...INTOOUTFILE将test数据库中的course表中的记录导出到文本文件SELECT*FROMtest.courseINTOOUTFILEC:/course0.txt;例11使用SELECT...INTOOUTFILE将test数据库中的course表中的记录导出到文本文件,使用FIELDS选项和LINES选项,要求字段之间使用逗号‘,’间隔,所有字段值用双引号括起来,定义转义字符定义为单引号‘\’’SELECT*FROMtest.courseINTOOUTFILEC:/course1.txtFIELDSTERMINATEDBY','ENCLOSEDBY'\'ESCAPEDBY'\''LINESTERMINATEDBY'\r\n';例12使用SELECT...INTOOUTFILE将test数据库中的course表中的记录导出到文本文件,使用LINES选项,要求每行记录以字符串“”开始,以“end”字符串结尾SELECT*FROMtest.courseINTOOUTFILEC:/course2.txtLINESSTARTINGBY''TERMINATEDBY'end';SELECT*FROMtest.courseINTOOUTFILEC:/course_2.txtLINESSTARTINGBY''TERMINATEDBY'end\r\n';例13使用LOADDATA命令将C:\course0.txt文件中的数据导入到test数据库中的course表LOADDATAINFILE'C:/course0.txt'INTOTABLEtest.course;例14使用LOADDATA命令将C:\course1.txt文件中的数据导入到test数据库中的course表,使用FIELDS选项和LINES选项,要求字段之间使用逗号‘,’间隔,所有字段值用双引号括起来,定义转义字符定义为单引号‘\’’LOADDATAINFILE'C:/course1.txt'INTOTABLEtest.courseFIELDSTERMINATEDBY','ENCLOSEDBY'\'ESCAPEDBY'\''LINESTERMINATEDBY'\r\n';2、使用mysqldump和mysqlimport命令导入和导出例15使用mysqldump将test数据库中的course表中的记录导出到文本文件mysqldump-TC:/testcourse-uroot-p例16使用mysqldump命令将test数据库中的course表中的记录导出到文本文件,使用FIELDS选项,要求字段之间使用逗号‘,’间隔,所有字符类型字段值用双引号括起来,定义转义字符定义为问号‘?’,每行记录以回车换行符“\r\n”结尾mysqldump-TC:\testcourse-uroot-p--fields-terminated-by=,--fields-optionally-enclosed-by=\--fields-escaped-by=?--lines-terminated-by=\r\n例17使用mysql语句导出test数据库中course表中的记录到文本文件mysql-uroot-p--execute=SELECT*FROMcourse;testC:\course3.txt例18使用mysql命令导出test数据库中course表中的记录到文本文件,使用--vertical参数显示结果mysql-uroot-p--vertical--execute=SELECT*FROMcourse;testC:\course4.txt例19使用mysql命令导出test数据库中course表中的记录到html文件mysql-uroot-p--html--execute=SELECT*FROMcourse;testC:\course5.html例20使用mysql命令导出test数据库中course表中的记录到xml文件mysql-uroot-p--xml--execute=SELECT*FROMcourse;testC:\course6.xml例21使用mysqlimport命令将C:\backup目录下的course.txt文件内容导入到test数据库中,字段之间使用逗号‘,’间隔,字符类型字段值用双引号括起来,定义转义字符定义为问号‘?’,每行记录以回车换行符“\r\n”结尾C:\Users\Administratormysqlimport-uroot-ptestC:/course.txt--fields-terminated-by=,--fields-optionally-enclosed-by=\--fields-escaped-by=?--lines-terminated-by=\r\n