MYSQL数据备份之mysqldump命令详解(附脚本定时备份)
一、常见备份命令介绍
备份命令 | 备份速度 | 恢复速度 | 介绍 | 功能 | 一般用于 |
---|---|---|---|---|---|
cp | 快 | 快 | 物理备份、灵活性低 | 很弱 | 少量数据备份 |
mysqldump | 慢 | 慢 | 逻辑备份、适用所有存储引擎 | 一般 | 中小型数据量备份 |
xtrabackup | 较快 | 较快 | 实现innodb热备、对存储引擎有要求 | 强大 | 较大规模的备份 |
热备份指的是当数据库进行备份时, 数据库的读写操作均不是受影响
温备份指的是当数据库进行备份时, 数据库的读操作可以执行,但是不能执行写操作
冷备份指的是当数据库进行备份时, 数据库不能进行读写操作, 即数据库要下线
二、mysqldump备份
2.1、mysqldump命令介绍
[root@]> mysqldump -helpUsage: mysqldump [OPTIONS] database_name [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
1.登录选项:-u user:指定用户-h host:指定主机-p:表示要使用密码-E, --events: 备份事件调度器-R, --routines: 备份存储过程和存储函数
2.备份选项:--all-databases:备份所有数据库--databases db1 db2:备份指定的数据库--single-transaction:对事务引擎执行热备--flush-logs:更新二进制日志文件--master-data=21:每备份一个库就生成一个新的二进制文件(默认)2:只生成一个新的二进制文件--quick:在备份大表时指定该选项
2.2、查看所属数据库、用户的权限
1、查看mysql数据库中的所有用户:
mysql>SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
2、查看数据库中具体某个用户的权限:
mysql> show grants for 'user'@'localhost';
或
mysql> select * from mysql.user where user='root'\G;
3、修改用户权限:
mysql> grent all on *.* to `user`@`localhost`;
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec).
4、向数据库施加读锁
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)
三、命令备份示例
**导出命令大全**
#导出education数据库里面的users表的表数据和表结构mysqldump -u[用户名] -h[ip] -p[密码] -P[端口号] 数据库名 表名 >导出的文件名.sqlmysqldump -uroot -h127.0.0.1 -proot -P3306 education users>d:/user.sql
#导出包括系统数据库在内的所有数据库(all.sql默认保存在bin文件夹下面)mysqldump -uroot -proot --all-databases>all.sql
#导出多张表:mysqldump -uroot -proot --databases test --tables t1 t2>two.sql
#只导出表结构不导表数据,添加“-d”命令参数mysqldump -uroot -h127.0.0.1 -proot -P3306 -d education users>d:/user.sql
#只导出表数据不导表结构,添加“-t”命令参数mysqldump -uroot -h127.0.0.1 -proot -P3306 -t education users>d:/user.sql
#只导出test数据库的表结构导出:mysqldump -uroot -proot --no-data --databases test>s1.sql导入:mysql -uroot -proot -h127.0.0.1 -P3306 test<s1.sql**导入命令大全**格式:mysql -h[ip] -P[(大写)端口] -u[用户名] -p[密码] [数据库名] < d:XX.sql(路径) mysql -uroot -proot -h127.0.0.1 -P3306 education<d:/database.sqlmysql -uroot -proot -h127.0.0.1 -P3306 <d:/all_database.sql
#命令行导入mysql> use test;mysql> source /home/test/database.sql
四、脚本备份示例:
#!/bin/bash
#NAME:数据库备份
#DATE:*/*/*
#USER:***#设置本机数据库登录信息
mysql_user="user"
mysql_password="passwd"
mysql_host="localhost"
mysql_port="3306"
mysql_charset="utf8mb4"
date_time=`date +%Y-%m-%d-%H-%M`#保存目录中的文件个数
count=10
#备份路径
path=/***/#备份数据库sql文件并指定目录
mysqldump --all-databases --single-transaction --flush-logs --master-data=2 -h$mysql_host -u$mysql_user -p$mysql_password > $path_$(date +%Y%m%d_%H:%M).sql
[ $? -eq 0 ] && echo "-----------------数据备份成功_$date_time-----------------" || echo "-----------------数据备份失败-----------------"#找出需要删除的备份
delfile=`ls -l -crt $path/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于阈值
number=`ls -l -crt $path/*.sql | awk '{print $9 }' | wc -l`
if [ $number -gt $count ]
thenrm $delfile #删除最早生成的备份,只保留count数量的备份#更新删除文件日志echo "-----------------已删除过去备份sql $delfile-----------------"fi
增加定时备份
crontab -e* * * * *
- - - - -
| | | | |
| | | | +----------星期中星期几 (0 - 6) (星期天 为0)
| | | +---------------月份 (1 - 12)
| | +--------------------一个月中的第几天 (1 - 31)
| +-------------------------小时 (0 - 23)
+------------------------------分钟 (0 - 59)添加定时任务(每天12:50以及23:50执行备份操作)
50 12,23 * * * cd /home/;sh backup.sh >> log.txt
MYSQL数据备份之mysqldump命令详解(附脚本定时备份)相关推荐
- 04-mysql数据备份之mysqldump命令详解
MYSQL数据备份之mysqldump命令详解 一.mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数 ...
- plsql导出表结构_mysqldump命令详解 Part 5-按条件备份表数据
实验环境: MySQL 5.7.25 Redhat 6.10 前面我们建立了数据库并建立相关的对象 数据库 表 存储过程 函数 触发器 事件 今天的内容为按条件备份表数据 1. 备份语句 我们来备份t ...
- MySQL操作mysqldump命令详解
MySQL操作mysqldump命令详解 基本命令: # 数据库备份-->mysqldump命令默认做锁表操作 mysqldump -uroot -ppassword --all-databas ...
- mysql57数据库命令_MySQL 5.7 mysql command line client 使用命令详解
MySQL 5.7 MySQL command line client 使用命令 1.输入密码:****** 2.ues mysql;使用Mysql 3.show databases;显示数据库 4. ...
- linux下mysql数据库基础及客户端命令详解
linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES; #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...
- mysql command line client 使用_MySQL 5.7 mysql command line client 使用命令详解
MySQL 5.7 MySQL command line client 使用命令 1.输入密码:****** 2.ues mysql;使用Mysql 3.show databases;显示数据库 4. ...
- MySQL建表(create table)命令详解
MySQL建表(create table)命令详解 create table命令 强调:使用建表命令之前必须使用use命令选择表所在的数据库.create table命令的格式如下: create t ...
- mysql 关键字 status_Mysql show status命令详解
Mysql show status命令详解 ## 介绍 SHOW STATUS提供服务器的状态信息. ## 命令用法 ```sql mysql> show status; mysql> s ...
- linux cpio grub 参数,Linux 备份压缩 : cpio 命令详解
cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件. 语法 cpio(选项) 选项 -0或--null:接受新增列控制字符,通常配合find ...
最新文章
- 录播教室预约系统(八)-客户端部门管理员增加教室
- 2021年春季学期-信号与系统-第四次作业参考答案-第十一小题
- 计院生活--第二章 深入虎穴(下)
- MySQL 锁与MVCC :数据库的锁、MVCC、当前读、快照读、锁算法、死锁
- MyBatis中多表查询(业务代码方式)
- bigdecimal如何做除法_二胎家庭如何平衡两个孩子的关系?聪明的父母都懂这四个法则...
- 微软研发致胜策略读书笔记(转)
- Stateflow如何观察变量的变化
- setTimeOut传参数
- 智慧发电厂+智能发电厂web端平台管理系统+Axure高保真智慧电厂系统+能耗管理+告警管理+生产监控+安防设备管理+运维设备管理+监控面板+系统管理+智慧电厂+电厂系统+axure源文件+rp原型
- 电脑中毒了怎么办 电脑中病毒的解决方法
- bzoj 3671 贪心
- 在串口输入input keyevent发送按键值给机器
- poj 2777 Count Color 基础线段树,带给的初学者噩梦!!!
- Origin安装Could not connect to Internet Origin installation requires an Internet Connection
- 拼多多直播不显示服务器,使用电脑端进行拼多多直播的开播教程
- 七个习惯之一:积极主动
- c语言瑞年条件,C语言如何判断是闰年,闰年判断条件
- 数学基础知识02——旋转轴、旋转角度和旋转矩阵
- 奈奎斯特采样定理粗略推导
热门文章
- 【答读者问47】一场由夏普率引发的乱斗(backtrader和joinquant计算夏普率的方式哪一种更稳定?)
- 晶振噪声及杂散_晶振频偏主要受什么影响?
- OkHttp使用详解
- Visio 画甘特图
- html背景图片手机端全屏,css 背景图全屏显示,兼容移动端
- 微信小程序商品详情html,微信小程序关于商品详情类的富文本解析器
- 计算智能——粒子群算法的寻优算法
- js拆字_分图程序 _拆分书法字体_拆分石刻碑文_拆分黄庭经碑文_使用方法
- 今日头条2018校招大数据/算法方向(第一批)详解
- Python实现樱花飘落