第一种备份方法:

使用tar打包文件夹备份

对数据库文件目录data进行压缩备份,使用压缩率较大的xz格式压缩

[root@localhost opt]# yum install -y xz

[root@localhost opt]# tar jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/         #压缩备份

[root@localhost opt]# ls
mysql-2018-08-30.tar.xz  rh

设置定时任务自动执行

[root@localhost opt]# crontab -e
 no crontab for root - using an empty one
 crontab: installing new crontab
 [root@localhost opt]# crontab -l
 30 1 * * * tar jcvf /opt/mysql-$(date +%F) /usr/local/mysql/data/                #设置定时任务自动执行

数据恢复,解压压缩备份文件即可

[root@localhost opt]# tar jxvf mysql-2018-08-30.tar.xz -C /usr/local/mysql/data/   


第二种备份方法

使用mysqldump工具压缩

备份数据库

[root@localhost data]# mysql -uroot -p -e 'show databases;'
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
| usr                |
[root@localhost ~]# mysqldump -uroot -p --databases school > /opt/school.sqlEnter password:

[root@localhost ~]# ls /opt
mysql-2018-08-30.tar.xz  rh  school.sql

删除数据库school

[root@localhost data]# mysql -uroot -p -e 'drop database school;show databases;'
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| usr                |
+--------------------+

数据库还原

第一种方案:

[root@localhost ~]# mysql -uroot -p < /opt/school.sql
Enter password: 
[root@localhost ~]# mysql -uroot -pabc123 -e 'show databases;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
| usr                |
+--------------------+

第二种方案:

[root@localhost ~]# mysql -uroot -pabc123mysql> source /opt/school.sql


附:

mysqldump 对单个库完全备份

mysqldump -u root -p --databases school >/opt/school.sql

对多个数据完全备份

mysqldump -u root -p --databases mysql school >/opt/school-mysql.sql

对所有库进行备份

mysqldump -u root -p --all-databases > /opt/all.sql

对表进行备份

mysqldump -u root -p school info >/opt/info.sql

对表结构进行备份

mysqldump -u root -p -d school info >/opt/info.sql