阿里云linux服务器 mysql数据库定时备份,及导出表中的部分数据

27 篇文章 0 订阅
6 篇文章 0 订阅

1.创建目录(选择备份文件后的路径),如:

cd ..                        #返回到首目录;

mkdir backup        #创建文件夹,名字随意起

cd /backup            #进入backup文件夹下

2.创建备份shell脚本;(在backup文件夹下创建)

vi dataBaseName.sh        #创建文件,dataBaseName文件名可以随意起

                            (  vi 基本命令http://mp.blog.csdn.net/postedit/79496048)

复制以下命令 ,保存      #备份成.sql 文件

#!/bin/bash
mysqldump -uusername -ppassword dataBaseName > /backup/dataBaseName1_$(date +%Y%m%d_%H%M%S).sql

复制以下命令,保存    #备份成压缩文件

#!/bin/bash
mysqldump -uusername -ppassword dataBaseName | gzip > /backup/dataBaseName1_$(date +%Y%m%d_%H%M%S).sql.gz

注:        username是用户名

                password是数据库密码

                dataBaseName 要备份的数据库名字

                dataBaseName1备份后的的文件名

                -uusername中间没有空格

                -ppassword中间没有空格

3.添加可执行权限;

chmod u+x dataBaseName.sh

执行下脚本看看有没有错误;

./dataBaseName.sh

4.添加计划任务;

确认安装crontab;

确认crontab是否安装: 
执行 crontab 命令如果报 command not found,就表明没有安装

# crontab
-bash: crontab: command not found

如时没有安装 crontab,需要先安装它,具体步骤请参考: 

CentOS下使用yum命令安装计划任务程序crontab

使用rpm命令从CentOS系统盘安装计划任务程序crontab

添加计划任务

执行命令:

crontab -e
  • 1

这时就像使用vi编辑器一样,可以对计划任务进行编辑。 
输入以下内容并保存:

*/1 * * * * /backup/databaseName.sh
  • 1

具体是什么意思呢? 

意思是每一分钟执行一次shell脚本“/home/backup/databaseName.sh”。

具体时间多久备份点击链接:   linux 任务调度crontab时间规则     http://blog.csdn.net/cindy9902/article/details/6456677

6.测试任务是否完成

按上述,添加定时任务后,每分钟会执行一次,在  cd /backup 文件夹下,看是否执行成功;

如果任务执行失败了,可以通过以下命令查看任务日志:

# tail -f /var/log/cron

如果没有执行成功,如下图;

检查;

1.可能,mysql 没有配置环境变量;

2.在dataBaseName.sh中添加的的内容修改成,mysql的原路径

#!/bin/bash
/usr/mysql/bin/mysqldump -uusername -ppassword dataBaseName | gzip > /backup/dataBaseName_$(date +%Y%m%d_%H%M%S).sql.gz/usr/mysql/bin/mysqldump -uusername -ppassword dataBaseName | gzip > /backup/dataBaseName_$(date +%Y%m%d_%H%M%S).sql.gz

mysql的原路径查找

输入 ps -ef | grep mysql

上图花圈的地方就是路径了

源文件;

http://blog.csdn.net/testcs_dn/article/details/48829785

http://blog.csdn.net/cindy9902/article/details/6456677

三。mysqldump导出表中的部分数据

mysqldump -uroot -p database table -w "id>50000" > /data/bak/tablename.sql

database:库名

table:表名

-w 后边 跟  条件: 上边的意思是 ,导出 database库的 table表的  id字段大于50000的 数据到/data/bak/tablename.sql 文件中

mo

mysqldump -uroot -p database table -w "time like '%2022-06-08%'" > /data/bak/tablename.sql

导出 time字段,模糊匹配为  2022-06-08  的  数据,  关键字是 like ,因为是 双引号里面的数据, like 后边的内容 需要加上 单引号 区分

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值