您的位置:首页 > 数据库 > MySQL

mySQL教程 第13章 数据备份和还原

2013-02-22 15:25 1316 查看

第13章 数据备份和还原

练习1:备份还原整个数据库

本练习将会备份整个数据库,并能够还原整个数据库到备份时的状态。在还原数据库是,数据库必须存在。
1. 创建测试数据库
mysql> create database webdb;
mysql> use webdb;
mysql> create table t1 (sid int,sname char(10));
mysql> create table t2 (sid int,sname char(10));
mysql> insert t1 values (1,'hanligang');
mysql> insert t1 values (2,'hanlihui');
mysql> insert t2 values (1,'wangsheng');
mysql> insert t2 values (2,'wangming');






2. 以下命令将会schoolDB数据库以root身份备份到当前命令


root@mySQL1:~# mysqldump -u root -p --opt webdb >webdb.sql


Enter password:
3. 并查看备份出来的文件
以下命令过滤掉注释行,可以看到备份出来的是sql语句,还原时是将sql语句重新执行一遍。
root@mySQL1:~# grep -v "^#" webdb.sql | grep -v "^-"



4. 备份后删除一条记录
查看webdb数据库现有表中的记录,删除t1表中的一条记录,再添加一条,删除t2表。



5. 还原整个数据库
root@mySQL1:~# mysql -u root -p webdb < webdb.sql
Enter password:



6. 验证还原
可以看到又还原到备份时的状态



查看删除的表t2也出现。



练习2:备份还原指定表

本练习在上一个练习的基础上进行。本练习只备份数据库中的一个表,然后还原该表,对其他没影响。
1. 登录mksql查看现有数据



2. 备份t1表
root@mySQL1:~# mysqldump -u root -p --opt webdb t1 >webdb.t1.sql
Enter password:



3. 进入数据库修改表
在t1表中删除一条记录,在t2表中删除一条记录。



查看现有记录



4. 还原t1表
root@myUbuntu:~# mysql -u root -p webdb < webdb.t1.sql
Enter password:



5. 验证还原的表
登录mysql,可以看到t1表的两个数据已经恢复到备份时的状态。



练习3:备份所有数据库

本练习将会为你演示,备份mysql所有数据库。一次还原所有数据库。能够还原删除的数据库。
6. 查看现有数据库



7. 备份所有数据库
root@myUbuntu:~# mysqldump -u root -p --all-database > all.sql
Enter password:



8. 删除一个数据库和一个数据库的一个表
删除testdb1;



删除webdb数据表t1的一条记录。



9. 还原所有数据库
root@myUbuntu:~# mysql -u root -p < all.sql
Enter password:



10. 验证数据库还原
再次等mySQL,可以看到删除的数据库,



查看删除的表中记录,也已经被还原出来。



练习4:只备份表结构

本练习将会为你演示将webdb数据库的表结构进行备份,不备份数据。并将备份的空表还原到数据库emptyDB;
11. 备份webdb空表
root@mySQL1:~# mysqldump -u root -p --opt -d webdb > webdb.tableonly.sql
Enter password:



12. 创建一个空的数据库emptyDB



13. 将表结构还原到emptyDB数据库
root@mySQL1:~# mysql -u root -p emptyDB < webdb.tableonly.sql
Enter password:
14. 查看还原的表结构



练习5:直接复制整个数据库目录

你可以通过拷贝数据库文件的方式备份数据库,为了保证数据的一致性,拷贝之前停止mySQL数据库。
直接拷贝数据库对于使用myISAM引擎的表有效,对于使用innoDB引擎的表无效。
15. 创建一个使用webdb2数据库,创建使用myISAM引擎的表t1。
mysql> create database webdb2;
mysql> use webdb2;
mysql> create table t1 (sid int,sname varchar(10)) engine=myisam;



插入两条记录



16. 查看数据库表文件
root@mySQL1:~# ls /var/lib/mysql/webdb2



17. 停止mysql数据库



18. 使用WinSCP拷贝数据库文件夹到Windows



19. 开始mySQL服务



20. 向插入webdb2数据库中t1表插入一条记录
mysql> insert t1 values (3,'zhang');



21. 停止mySQL服务



22. 使用WinSCP拷贝Windows数据库文件夹到Ubuntu
将以前拷贝的表文件再次拷贝到ubuntu。



更改拷贝过去的文件的所有者,和权限。












23. 开始mySQL服务



24. 再次查看webdb2数据库t1表的记录,可以看到,回复到以前的状态。



插入一条记录,能够插入新记录。



练习6:使用select导出数据到文件 本练习使用select导出数据到记事本文件,然后使用该记事本文件导入数据。
25. 将表导出到记事本文件



使用putty连接mySQL,导出表t1到t1.txt记事本
mysql> select * from t1 into outfile '/var/lib/mysql/webdb2/t1.txt' fields terminated by "," enclosed by "'";
删除t1表中的所有记录
mysql> delete from t1;
mysql> select * from t1;



查看导出的记事本



26. 导入数据
mysql> load data infile '/var/lib/mysql/webdb2/t1.txt' into table t1 fields terminated by ',' enclosed by "'";



查看导入的记录



练习7:使用mysql导出数据 本练习将会使用mysql将webdb2的表t1的数据导出到记事本文件
27. 导出数据
root@mySQL1:~# mysql -u root -p --vertical --execute="select * from t1;" webdb2 > webdb2.t1.txt



28. 查看导出的数据



29. 去掉导出结果中注释线
root@mySQL1:~# mysql -u root -p --execute="select * from t1;" webdb2 > webdb2.t1.txt.2
Enter password:



30. 查看导出的记事本文件



31. 导出为网页
root@mySQL1:~# mysql -u root -p --execute="select * from t1;" webdb2 > webdb2.html
 
广告











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: