mysql数据库逻辑备份程序mysqldump

一、 功能

mysql数据库逻辑备份

二、应用演示

非大数据备份解决方案 SQL语句重现 备份数据表需要SELECT权限

语法:
mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql

-A, --all-databases 所有库
school 数据库名
school stu_info t1 school数据库的表stu_info、t1
-B, --databases bbs test mysql 多个数据库
关于其它参数说明:
--single-transaction #基于此项可以实现对InnoDB表做热备份
-x, --lock-all-tables #执行备份时为所有表请求加锁 MyISAM
-l, --lock-tables
-E, --events #备份事件调度器代码
--opt #同时启动各种高级选项
-R, --routines #备份存储过程和存储函数
-F, --flush-logs #备份之前刷新日志
--triggers #备份触发器
--master-data=2 #备库,该选项将会记录binlog的日志位置与文件名并追加到文件中,如果为1将
会输出CHANGE MASTER命令,主从下有用

注意:-B 作用:创建数据库和切换到数据库,恢复时不用创建数据库和删表。备份多个库,-B 数据库1
数据库2

-d只备份库结构,不包含数据内容

备份:mysqldump -u 用户名 -p 数据库名 表名 > 备份的文件名
备份多个表:mysqldump -u 用户名 -p 数据库名 表名1 表名2 > 备份的文件名

1、数据库备份

[root@localhost ~]# mysqldump -uroot -pAdmin@123 --single-transaction --master-data=2 test_data > /tmp/test_`date +%F-%H-%M`.sql

[root@localhost ~]#  mysqlshow -uroot -p test_data
Enter password:
Database: test_data
+--------+
| Tables |
+--------+
| user   |
+--------+

[root@localhost ~]# ls /tmp/
test_2019-07-21-21-54.sql

2、数据库恢复

创建一个新的数据库test
[root@localhost ~]# mysql -uroot -pAdmin@123 -e 'create database test'
[root@localhost ~]# mysql -uroot -pAdmin@123 -e 'show databases;'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
| test_data          |
+--------------------+

查看数据库test为空
[root@localhost ~]#  mysqlshow -uroot -p test
Enter password:
Database: test
+--------+
| Tables |
+--------+
+--------+

将刚才备份的数据库恢复到test数据库里面

[root@localhost ~]# mysql -uroot -p test 

你可能感兴趣的:(mysql数据库逻辑备份程序mysqldump)