完全备份的实列
需要先停止数据库服务,再直接打包压缩数据库文件
数据库所有文件目录:/usr/local/mysql/data
故障时,停止服务,将故障的数据库文件移走到备份文件夹中,解压刚才备份数据库包到/restore目录下,再移动到usr/local/mysql/data下,再重启服务
误删库
恢复成功
mysqldump备份与恢复
使用mysqldump命令对某些表进行完全备份
mysqldump -u root -p --all-databses > all-data-$(date +%F).sql
###备份所有数据库到当前目录下的all-data-$(date +%F).sql 文件
mysqldump -u root -p -databases auth mysql > auth-mysql.sql ###备份auth和mysql库
mysqldump -u root -p auth > auth-$(date +%F).sql ###备份auth数据库
mysqldump -u root -p mysql user > mysql-user-$(date +%F).sql ###备份mysql的user表
mysqldump -u root -p -d mysql user > /tmp/desc-mysql-user.sql ###备份mysql库user表的结构
实例1:
备份单独一个student库
[root@server1 ~]# mysqldump -u root -p student > student-$(date +%F).sql
Enter password:
恢复:
误删除单独一个库,恢复时,需要再建一下这个库
mysql> drop database student;
Query OK, 3 rows affected (0.02 sec)
mysql> create database test;#命名可根据需要
Query OK, 1 row affected (0.00 sec)
mysql> exit
Bye
方法一:在数据库外导入
[root@server1 ~]# mysql -u root -p test < student-2020-11-02.sql #将刚刚备份的导入test
Enter password:
方法二:在数据库内用source
#这里必须要use 数据库,否则无法有对应的数据库可以导入
mysql> use test;
mysql> source /student-2020-11-02.sql;
查看恢复结果
mysql> show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| info |
| test |
| zf |
+-------------------+
3 rows in set (0.00 sec)
mysql> select * from info;
+----+--------+---------+
| id | name | address |
+----+--------+---------+
| 1 | lisi | 苏州 |
| 2 | liqi | 杭州 |
| 3 | wangwu | 北京 |
实例2:
备份多个数据库
[root@server1 ~]# mysqldump -uroot -pxzf729 --databases mysql student > mysql-student-bak.sql
#备份数据库mysql和student到当前目录下的mysql-student.sql,可查看到,也可加绝对路径保存
[root@server1 ~]# ll
总用量 48784
-rw-------. 1 root root 1878 8月 11 04:02 anaconda-ks.cfg
-rw-r--r--. 1 root root 1926 8月 11 04:49 initial-setup-ks.cfg
drwxr-xr-x. 38 7161 31415 4096 10月 22 11:11 mysql-5.7.20
-rw-r--r--. 1 root root 48833145 10月 22 10:31 mysql-boost-5.7.20.tar.gz ####
-rw-r--r--. 1 root root 1101429 11月 2 12:14 mysql-student-bak.sql
......
误删除俩个库:
mysql> drop database mysql;
Query OK, 32 rows affected, 2 warnings (0.04 sec)
mysql> drop database student;
Query OK, 3 rows affected, 2 warnings (0.00 sec)
恢复:无需再创建数据库,可直接恢复
mysql> source /root/mysql-student-bak.sql
查看恢复结果
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| student |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> select * from student.info;
+----+--------+---------+
| id | name | address |
+----+--------+---------+
| 1 | lisi | 苏州 |
| 2 | liqi | 杭州 |
| 3 | wangwu | 北京 |
+----+--------+---------+
3 rows in set (0.00 sec)