首先是在网上找了一下教程,代码很简单

#!/bin/bash

folder=~/test
time=`date +%Y%m%d` mysqldump -u user -p pwd -hlocalhost databasename | gzip > $folder/databasename_$time.sql.gz
#
find $folder -name 'databasename_*.sql.gz' -type f -mtime + -exec rm {} \;
#
gunzip < $folder/databasename_$time.sql.gz | mysql -hlocalhost -uuser -ppwd databasename

因为写python代码习惯了,碰到=就自然而然敲空格,结果很多变量都没有值,所以这里需要注意一下,然后user和pwd就是你自己数据的用户名和密码,databasename就是你要操作的数据库名称,因为不想浪费内存就直接将mysqldump生成的sql文件进行了压缩处理,然后中间的命令就是找到七天以前的文件并进行删除操作,-exec是值后面的命令将会被执行,大括号是被执行对象集合,后面以分号结尾,加一个反斜杠防止被转义,第三行命令就是从gzip文件中恢复数据到数据库,一开始我是用gzip,然后就报了一个错误:

ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: '.

我去搜索了一下发现没有什么好的解决方案,然后把sql语句解压后用命令发现可以执行.sql文件,就试了一下不使用gzip改用gunzip,然后就脚本就成功运行并且没有相类似的报错了。

后面的定时执行也顺带提一下,

# chmod +x bashname.sh  --为脚本添加执行权限
# crontab -e
* * * root ~/bashname.sh
# 表示每天3点00分执行脚本

然后重启一下crontab就可以了。

linux备份mysql文件并恢复的脚本,以及其中出现的错误:ERROR: ASCII '\0' appeared in the statement的更多相关文章

  1. window环境下mysql导入sql文件时报错:ERROR: ASCII '\0' appeared in the statement

    错误信息: ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mo ...

  2. 导入mysql文件提示“ASCII '\0' appeared in the statement”

    在windows服务器上导入mysql文件时,出现以下报错:ASCII '\0' appeared in the statement, but this is not allowed unless o ...

  3. [20171225]没有备份数据文件的恢复.txt

    [20171225]没有备份数据文件的恢复.txt --//别人问的问题,增加了数据文件没有备份,如何恢复,实际上很简单,因为当前控制文件有记录建立时间只要从建立数据文件开始的--//归档日志都存在恢 ...

  4. 一个备份MySQL数据库的简单Shell脚本(转)

    Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反 ...

  5. [转]一个备份MySQL数据库的简单Shell脚本

    本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这 ...

  6. linux备份mysql数据库

    刚学的技术,保存一下 1. 在linux服务器上创建一个 msyql.sh文件 (随便定义) ,用来保存备份mysql数据的脚本 2. 编辑mysql.sh文件   (自己之前写过的一个脚本) mys ...

  7. linux下mysql 文件导入导出

    最近在做mysql的数据导入导出得到的一些经验,记录下. 1.首先要开通导入导出的功能,需要设置一个mysql的配置 可以在 my.conf 文件的最后增加配置项 secure-file-priv=' ...

  8. linux中备份mysql数据库的一个shell脚本

    #!/bin/bash #FileName:select_into_bak.sh #Desc:Use select into outfile to backup db or tables #Creat ...

  9. 在Linux下误删文件后恢复【转】

    针对日常维护操作,难免会出现文件误删除的操作.大家熟知linux文件系统不同win有回收站,删除后的文件可以到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门.所以本次研究一种 ...

随机推荐

  1. SpringBoot入门-MongoDB(五)

    安装MongoDB 安装MongoDB MongoDB用户.数据库相关命令操作 https://www.jianshu.com/p/237a0c5ad9fa # 创建用户以及角色 use spring ...

  2. Superset配置mysql数据源

    1.添加mysql数据源 测试连接的时候遇到 No module named 'MySQLdb'" 安装mysqlclient pip install mysqlclient 如果遇到 ER ...

  3. [Golang] mynats(对nats.go的二次封装)

    0x0 前言 最近项目开始使用nats作为消息中间件. nats的引入确实解决项目很多痛点. 比如: 1)服务动态横向扩展 2)负载均衡(nats的均衡机制只有随机,不过对我们来说也够用了) 3)多服 ...

  4. CKA认证简介

  5. linux 安装 btrace

    1.下载btrace https://github.com/btraceio/btrace/releases/download/v1.3.8.3-1/btrace-bin-1.3.8.3.tgz2.上 ...

  6. centos7安装配置MariaDB10

    1:添加 MariaDB yum 仓库 vi /etc/yum.repos.d/MariaDB.repo在该文件中添加以下内容保存: [mariadb] name = MariaDB baseurl ...

  7. 简单使用Moq框架

    Moq框架简单使用   系列目录 Moq库简介及安装 Moq简介 Moq是.net平台下的一个非常流行的模拟库,只要有一个接口它就可以动态生成一个对象,底层使用的是Castle的动态代理功能. 它的流 ...

  8. IDEA配置类签名

  9. [转帖]CNN、RNN、DNN的一般解释

    CNN.RNN.DNN的一般解释 https://www.jianshu.com/p/bab3bbddb06b?utm_campaign=maleskine&utm_content=note& ...

  10. WSAEventSelect模型

    WSAEventSelect模型 EventSelect WSAEventSelect function The WSAEventSelect function specifies an event ...