ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Linux定时备份mysql数据库

2020-03-12 10:55:04  阅读:241  来源: 互联网

标签:备份 mysql mysqldump Linux backup 数据库 dir


一、MySQL数据备份

1、在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:

  mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql

2、编辑shell脚本:

    cd /home 进入home目录

 mkdir mysqlbackup  创建文件夹

    vim  mysql_dump_script.sh

#!/bin/bash
#保存备份个数,备份7天数据 number=7 #备份保存路径 backup_dir=/home/mysqlbackup #日期 dd=`date +%Y-%m-%d-%H-%M-%S` #备份工具 tool=mysqldump #用户名 username=root #密码 #password=TankB214 #将要备份的数据库 database_name=gl_gcc #如果文件夹不存在则创建 if [ ! -d $backup_dir ]; then mkdir -p $backup_dir; fi #简单写法
$tool --defaults-extra-file=/etc/my.cnf $database_name > $backup_dir/$database_name-$dd.sql #写创建备份日志 echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt #找出需要删除的备份 delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1` #判断现在的备份数量是否大于$number count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l` if [ $count -gt $number ] then #删除最早生成的备份,只保留number数量的备份 rm $delfile #写删除文件日志 echo "delete $delfile" >> $backup_dir/log.txt fi

注意: mysql 5.7 以上版本不能把密码写在shell文件里,因此更改/etc/my.cnf 文件

解决方法:

对于mysqldump 要如何避免出现(Warning:Using a password on the command line interface can be insecure.) 警告信息呢?

① vim /etc/my.cnf

[mysqldump]

user=root(数据库账号)

password=数据库密码

②:wq

③重启mysql服务:service mysql restart

3、修改shell脚本权限,chmod 777  mysql_dump_script.sh  ,这样这个脚本就变成可执行文件, ./mysql_dump_script.sh 可查看是否还有其他报错!

二、开启定时任务,执行数据库备份脚本

 1、crontab -e  进入定时任务编辑页面 

  00 01 * * * /usr/bin/sh /home/mysqlbackup/mysql_dump_script.sh  代表每天凌晨1点执行一次这个脚本。

  其他关于定时任务的资料可参考 https://www.runoob.com/w3cnote/linux-crontab-tasks.html

2、再用 service crond restart 重新启动定时任务服务即可!

3、crontab -l 可查看当前所有的定时任务列表!

标签:备份,mysql,mysqldump,Linux,backup,数据库,dir
来源: https://www.cnblogs.com/jn1011/p/12464086.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有