本实例将创建目录放置于/mnt目录下,可根据具体情况放置于其他目录:

cd /mnt

mkdir dbback

pwd

/mnt/dbback

创建shell脚本

脚本名称可根据自己规范进行自定义:

vim bcmysql.sh

进入编辑器,输入以下内容:

#!/bin/bash

mysqldump -uusername -ppassword demo > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql

如果需要本分文件进行压缩,可输入下面命令:

#!/bin/bash

mysqldump -uusername -ppassword demo | gzip > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql.gz

在具体操作中,需要将username,password和demo分别替换成对应的数据库用户名、密码和 数据库 名。

添加可执行权限

chmod u+x bcmysql.sh

添加完执行权限之后,执行此脚本,可能会出现如下异常:

mysqldump: [Warning] Using a password on the command line interface can be insecure.

这个问题应该是在 MySQL 5.6+版本的时候就有出现,可能是为了确保数据库的安全性采用的保护机制。在本实例中使用的mysql版本为5.7.22,虽然有警告信息,但可以成功备份数据。

修改mysql配置文件

针对上面的问题,某些版本可能无法成功备份,另外也不建议将数据库密码配置在脚本中,则可直接修改mysql的配置文件。一般情况下,mysql的配置文件在/etc/my.cnf。

vim /etc/my.cnf

在此文件内添加mysqldump的配置如下:

[mysqldump]

user=your_backup_user_name

password=your_backup_password

替换掉对应的用户名和密码,并修改bcmysql.sh脚本中的命令,取消用户名和密码参数,无需重启mysql,直接执行脚本即可看到备份结果。

demo_20181114_193425.sql

问题一

当使用vim查看导出的sql文件内容时,会发现中文有乱码。此问题有两种情况引起,第一种就是数据库本身字符集为latain1,则此时需要指定字符集,在执行的参数中添加如下参数:

--default-character-set=gbk

当然如果是utf8则将gbk修改为utf8。查看数据库字符集的命令如下:

show variables like '%char%';

-- 查询结果

character_set_client utf8

character_set_connection utf8

character_set_database utf8mb4

character_set_filesystem binary

character_set_results utf8

character_set_server utf8

character_set_system utf8

character_sets_dir /usr/local/mysql/share/charsets/

如果将字符集正确修改,依然有乱码,则可尝试添加如下参数:

--hex-blob

仔细分析一下表结构,可能表结构中有blob类型,这个参数的含义是用16进制的方式导出BINARY, VARBINARY, BLOB类型的数据。修改后的命令如下:

mysqldump --default-character-set=utf8 --hex-blob demo > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql

添加计划任务

检测或安装crontab

执行crontab命令如果报command not found,就表明没有安装。

# crontab

-bash: crontab: command not found

如果未安装,可以通过yum命令进行安装:

# yum -y install vixie-cron

虽然crontab不支持-h或-help命令,但可以通过此命令检查是否安装成功:

[root@iZ2zeck5vZ ~]# crontab -help

crontab:无效选项 -- h

crontab: usage error: unrecognized option

Usage:

crontab [options] file

crontab [options]

crontab -n [hostname]

Options:

-u define user

-e edit user's crontab

-l list user's crontab

-r delete user's crontab

-i prompt before deleting

-n set host in cluster to run users' crontabs

-c get host in cluster to run users' crontabs

-s selinux context

-x enable debugging

Default operation is replace, per 1003.2

添加计划任务

通过上面的命令参数,我们可以看到修改crontab的命令,执行命令:

crontab -e

进入crontab的编辑操作页面,可以像vi、vim一样编辑其中的内容。在其中添加如下命令:

*/1 * * * * /mnt/dbback/bcmysql.sh

此行命令的作用是每隔一分钟执行一次bcmysql.sh。等待一分钟之后通过ls命令查看是否生成备份文件。发现已经可以正常生成文件。当然,我们并不需要每分钟就备份一次,因此把命令改为如下:

0 1 * * * /mnt/dbback/bcmysql.sh

每天凌晨1点执行一次备份操作。

日志查看

如果执行失败了,则可查看任务日志:

# tail -f /var/log/cron

小结

至此,一个简单版本的 Linux 下实现Mysql定时任务备份数据功能已经实现。当然也可以在此版本基础上进行目录控制,历史记录删除等扩展。

linux设置mysql定时任务_原创 Linux下实现Mysql定时任务备份数据相关推荐

  1. centos MySQL 双机_[原创]CentOS下Mysql双机互为备份

    一.环境: 1.安装Centos-6.5-x64位系统的机器两台: host1:192.168.2.3 host2:192.168.2.4  (互相能ping通) 2.安装Mysql. 命令:Yum ...

  2. 宝塔mysql优化_宝塔面板下实现MySQL性能优化处理

    在PHP+MYSQL架构网站运行过程中,往往会遇到各种性能问题影响,如MySQL.PHP.CPU.磁盘IO.缓存等,其中MySQL瓶颈就是最常见也最难解决的一种影响网站性能的因素:通常,我们会使用re ...

  3. mysql官网下载ubuntu_Ubuntu下安装MySQL

    MySQL官网,Ubuntu下的MySQL下载条目太多,太杂,想查怎么用这些包都不知道怎么组织语言,所以使用 apt 下载,并配置: 1.环境信息 系统: 阿里云服务器 Ubuntu 16.04 远程 ...

  4. linux上部署mysql服务_在Linux环境下部署MySql服务

    之前有下载部署过几次,但是每次都会踩一些坑.特此记录在liunx下部署安装mysql的基本步骤: 1.卸载老版本的mysql find / -name mysql|xargs rm -rf     查 ...

  5. 关于linux系统下遇到的mysql问题_关于Linux系统上遇到的MySql有关问题,求指导

    关于Linux系统下遇到的mysql问题,求指导 问题1: Mysql是安装在linux体统中,操作是通过使用WindowsXP 下的软件Navicat 8 for MySQL,在连接上Linux中的 ...

  6. linux 查看mysql安装目录_Linux环境下安装MySQL数据库示例教程

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 Linux环境对大多数SQL初学者还是比较陌生,今天给大家演示一下如何在Linux环境 ...

  7. linux怎么在win上安装mysql_CentOS下安装MySQL及Windows下使用Navicat for MySQL连接

    安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list mysql* 安装mysql客户端: y ...

  8. linux mysql root用户密码_Linux下修改Mysql的用户(root)的密码

    1.root用户登录到mysql数据库 代码示例: /usr/local/mysql/bin/mysql -u root -p (输入密码进入mysql) 2.进入mysql,输入: 代码示例: us ...

  9. linux mysql主从半同步_centos下安装mysql主从架构(半同步/多实例)

    centos下安装mysql主从架构(半同步/多实例) [toc] 简介 本教程会进行mysql一机多实例的安装.mysql主从同步配置.半同步配置 环境 OS: CentOS Linux relea ...

最新文章

  1. Python中的对象,类,super()函数
  2. 清华教授透漏:博士生6年不毕业或将影响信用记录,并将影响贷款
  3. java beans 组件_如何利用JavaBeans在应用程序中创建组件?
  4. 面试题整理7 二叉搜索树的后序遍历序列
  5. 微信小程序样式入门到精通(wxss)课程007-文本-text-align水平对齐
  6. 如何使用 C# 中的 ValueTuple
  7. win8无线网络受限怎么办 win8网络受限的解决方法
  8. 闲鱼公布2021年度十大“无用”商品:网友买前壮志 买后吃灰
  9. 03-4 BGP 默认路由/MED
  10. JAVA 实验报告总结
  11. 【技术】jmeter 录制脚本
  12. shapefile(.shp)空间数据格式详细说明
  13. cad快速看图能合并图纸吗_【CAD快速看图电脑版】合并图纸、2张图之间复制
  14. WEB项目优化:雅虎优化网站的34条法则(转)
  15. ANSYS APDL学习(12):如何将ansys求解后的数据(点位移/应力/应变等)导出到txt文件
  16. PHP 下载保存文件到本地
  17. kali如何对网站进行ddos攻击
  18. linux下u盘怎么找,redhat怎么找到u盘呢 ?
  19. Linux非常牛逼的命令
  20. jQuery 遍历 - 后代 【后代是子、孙、曾孙等等。children()查找下一个子元素; find()查找所有后代】

热门文章

  1. python输入一个整数倒序输出_利用Python实现倒序任意整数
  2. Redis 官方可视化工具,功能强大、干净又卫生!
  3. 9 个 Java 性能调优技巧,YYDS!
  4. 手握2.2亿美元,但想不起密码,还有两次机会,一起支支招啊!
  5. 如果MySQL事务中发生了网络异常?
  6. 每日一皮:公司来了个程序员鼓励师...
  7. IntelliJ IDEA 2019.2最新解读:性能更好,体验更优,细节处理更完美!
  8. win10 远程ubuntu
  9. android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor'
  10. OCtaveResNet 测试