我们先创建一个数据库作为测试的数据库及里面的内容如下:
mysql> create database thursday;
Query OK, 1 row affected (0.00 sec)
mysql> use thursday;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create table first(id int primary key auto_increment,name varchar(50),age
int );
Query OK, 0 rows affected (0.23 sec)
mysql> insert into first(name,age) values("张三",18);
Query OK, 1 row affected (0.17 sec)
数据库(database)的备份相关内容:
一、通过命令实现数据库的还原备份(mysqldump)
(1)mysqldump备份:
mysqldump -uroot -p thursday > c:/backup/a.sql
(2)还原备份:
mysql -uroot -p thursday < c:/backup/a.sql
二、备份具体的莫一张表(table)是怎么备份的?
(1)备份:
mysqldump -uroot -p thursday first second >c:/backup/b.sql
(2)还原
source c:/backup/b.sql
注意:表的还原要在数据库的下面进行。
三、同时备份多个数据库(databases)怎么操作?
备份:
mysqldump -uroot -p –databases thursday test > c:/backup/c.sql
还原:
source c:/backup/c.sql
四、同时备份所有的数据库
mysqldump -uroot -p -A > c:/backup/myAllDatabase.sql
或者:
mysqldump -uroot -p –all-databases >c:/backup/myAllDatabase.sql
五、用select方式备份:
(1) 备份
select * from first into outfile c:/backup/data1.sql;
(2)还原
load data infile “c:/backup/data1.sql”;
六、增点备份(回到过去)
赠点备份是我们在操作数据库中如果有失误的操作,可以回到过去,相当于拯救数据的一个过程,较为重要。
(1) 在my.ini文件中配置
在【mysqld】下面配置 log-bin=c:/backup/point.log
(2)修改完成配置文件后,在cmd窗口中重新启动mysql,把配置文件的信息录入进去。
(3)在c:/backup文件夹下面我们会发现系统自动生成的两个文件夹如下:
(4)在mysql数据库中删除掉second表作为后续找回模拟使用。
mysql> use thursday;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_thursday |
+--------------------+
| first |
| second |
+--------------------+
2 rows in set (0.00 sec)
mysql> drop table second;
Query OK, 0 rows affected (0.18 sec)
(4)查看.000001文件
输入命令:
mysqlbinlog c:/backup/point.000001
(5)从.000001文件中可以看到我们实现操作的时间及增点,如上图的2和3,可以通过时间或者增点回到过去对于数据库操作的时间点。实现数据的恢复。
mysqlbinlog –stop-datetime = “2017-05-25 22:13:18” c:/backup/point00001|mysql -uroot -p
或者根据增点进行数据恢复,回到过去
mysqlbinlog –stop-pos=219 c:/backup/point.000001|mysql -uroot -p