/*SQL语句备份与恢复*/
1.SQL语句备份:
①导出表数据-----------
使用SELECT INTO … OUTFILE语句将表数据导出到一个文本文件中,语法格式如下:
SELECT * INTO OUTFILE ‘FILENAME’
[FIELDS
[TERMINATED BY ‘string’]
[[OPTIONALLY] ENCLOSED BY ‘char’]
[ESCAPED BY ‘char’]
]
[LINES TERMINATED BY ‘string’];
2.比如用不同的后缀名备份DBEM数据库中的employee, salary两个基本表,employee表要求只备份employeeID, name, education等三个字段,书写语句为:
①对于表employee:
select employeeID,name,education from employee into outfile 'D:\\dataset2\\employee_back.doc'
fields terminated by '\t'
enclosed by ''
escaped by ';'
lines terminated by '\r';
注:备份的数据文件存储路径要已知且存在,文件路径的书写,可能不同电脑斜杠'\'数量和方向不一致,结合自身情况而定;
②对于表salary:
select * from salary
into outfile 'D:\\dataset2\\salary.txt';
或者
select * from salary
into outfile 'D:\\dataset2\\salary_back.txt'
Fileds terminated by ‘\t’
Enclosed by ‘’
Escaped by ‘,’
Lines teriminated by ‘\r’;
3.SQL语句恢复:
①导入表数据----------
使用LOAD DATA INTO … INFILE语句将一个文件中的数据导入到数据库中,语法格式如下:
LOAD DATA INFILE ‘FILENAME’ [REPLACE|IGNORE] INTO TABLE table_name
[FIELDS
[TERMINATED BY ‘string’]
[[OPTIONALLY] ENCLOSED BY ‘char’]
[ESCAPED BY ‘char’]
]
[LINES [STARTING BY ‘string’] [TERMINATED BY ‘string’]]
[IGNORE number LINES]
[(列名或用户变量)]
[SET 列名=表达式]
①对于employee表:
LOAD DATA INFILE 'D:\\dataset2\\employee_back.doc' replace into TABLE employee
fields terminated by '\t'
enclosed by ''
escaped by ';'
lines terminated by '\r'
(employeeID,name,education);
②表salary同理
LOAD DATA INFILE 'D:\\dataset2\\salary_back.txt' replace into table salary
fields terminated by '\t'
enclosed by ''
escaped by ';'
lines terminated by '\r';
效果如下图:
/*客户端备份与恢复*/
顾名思义,即使用客户端工具对数据库进行备份和恢复;
①使用mysqldump备份数据:
mysqldump程序可用于备份数据,并且可以在导出的文件中包含表结构的SQL语句,因此可以备份数据库表的结构,而且可以备份整个 数据库,甚至整个数据库系统。
*比如使用mysqldump命令备份DBEM数据库中的employee表,语句为
mysqldump -hlocalhost -uroot -p123456 dbem employee >D:\dataset2\employee.sql
注:'-uroot'表示数据库的登录用户名为root,'-p123456'表示数据库的登录密码为123456;而且备份的数据文件存储路径要已知且存在,文件路径的书写,可能不同电脑斜杠'\'数量和方向不一致,结合自身情况而定;
*比如使用mysqldump命令备份整个DBEM数据库 ,语句为
mysqldump -hlocalhost -uroot -p123456 dbem >D:\dataset2\dbem.sql
②使用mysql恢复数据库
mysql命令可以恢复由mysqldump备份的数据库文件
*比如删除employee表,然后使用mysql命令,利用上述保存的文件恢复employee表 ,语句为:
mysql -uroot -p123456 dbem <D:\dataset2\employee.sql
恢复数据库为:
mysql -uroot -p123456 dbem <D:\dataset2\dbem.sql
③使用mysqlimport恢复数据
mysqlimport程序可以恢复基本表中的数据,它提供了一个LOAD DATA INFILE语句的命令行接口,发送命令到服务器来运作;
*比如删除salary表的部分数据,然后使用mysqlimport命令及--replace功能恢复salary表,其中salary表的数据备份文件使用实验4.1中的文件,语句为:
mysqlimport -uroot -p123456 --replace dbem D:/dataset2/salary.txt
效果如下图: