计划备份mysql数据库

作者:gzmast 来源:gzmaster 博客 时间:2009-03-09 14:34:00 

1:mysql是我们使用最多的数据库,如果在日常中正确的对mysql数据进行备份,下面我们就来做这事,通过脚本来实现

###################################################################################################################################
    #!/bin/bash
    #backup My databases
    #by luox at 2008-10-24
    source /home/cacti/.bash_profile
    PATH=/home/cacti/local/mysql5.0.22/bin:/home/cacti/local/php5.2.6/bin:/home/cacti/local/apache2.2.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

    #date +%Y-%m-%d
    #backup bbs database
    mysqldump -S /home/cacti/tmp/mysql.sock -u bbsuser -p'pDdWShDzwXSLzSCB' --default-character-set=gbk --opt --extended-insert=false --hex-blob bbsuser >/home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql

    #compress the bak files
    bzip2 /home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql


    #remove 4 week old bak files
    find /home/cacti/backup/ -name '*.bz2' -ctime +28 -exec rm {} \;

##################################################################################################################################
   
通过上面的脚本就可以实现备份数据,简单介绍一下mysqldump这个命令的使用(上文中粗体bbsuser指的是数据库名)
-S 指定数据库使用的sock文件,一个系统中可以运行多个不同端口的mysql,如果要连接这个数据库就需要用到这个参数来指定sock文件
-u 指定用户,在这里,如果我们备份bbsuser数据库,只需要用到bbsuser这个用户就可以了。当然root用户也可以,只不过我们写在脚本里当然用权限小点更佳
   
-p 指定密码,使用''将密码括起来

 --default-character-set= 用于设置数据库的格式,这和数据库使用默认的语言有关,可以连接到数据库里使用show variables;来查看当前,一般有utf8 gbk
   
--opt 实施备份可能是最常用的方法,因为备份速度上的优势

--extended-insert=false 是为了导出为多行Insert,不然可能因为Insert语句过长出错
--hex-blob 使用十六进制格式导出二进制字符串字段

 -A, --all-databases Dump all the databases. This will be same as --databases with all databases selected. 可以用于备份所有数据库
 
PS:使用date +%Y-%m-%d 可以显示出当天的日期,我们在备份时也加个这参数可以起很好的标识备份文件日期作用。如果在mysqldump中引用date需要使用`date +%Y-%m-%d`

2:bzip2 可以将文件压缩成bz2的文件,并且删除掉原来的,

3:通过find来查找,然后根据时间,如果多于28天(4周)就进行删除。

 4:接下来还可以将这个脚本执行放到Crontab中,让脚本一天运行一次,就可以对数据进行很好的备份了。
 
#################################################################################
#backup my database

5 0 * * * /home/cacti/backup/backupmysql.sh >/dev/null 2>&1
#################################################################################

3:数据库的导入:

/home/cacti/local/mysql5.0.22/bin/mysql -S /home/cacti/tmp/mysql.sock -ubbsuser -p'pDdWShDzwXSLzSCB' bbsuser </home/cacti/backup/bbsuser_bak_2008-10-24.sql

标签:备份,计划备份,mysql数据库
0
投稿

猜你喜欢

  • Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例

    2023-04-09 05:17:42
  • 跨浏览器的CSS固定定位{position:fixed}

    2007-05-11 16:50:00
  • Python BeautifulReport可视化报告代码实例

    2023-11-12 14:53:13
  • JQUERY新手学习笔记

    2008-09-28 12:43:00
  • mysql压缩包版zip安装配置方法

    2024-01-17 08:06:01
  • asp如何随机显示网站链接?

    2010-06-07 20:40:00
  • 设计规范有谱么?

    2008-06-06 12:28:00
  • 用户研究中的人物角色

    2010-02-08 12:15:00
  • MySQL8重置root账户密码图文教程超详细讲解

    2024-01-25 17:40:55
  • 详解Vue中添加过渡效果

    2024-04-27 16:04:29
  • python实现静态服务器

    2021-11-24 05:18:13
  • 提高代码可读性的十大注释技巧分享

    2023-05-28 21:55:35
  • python爬虫使用requests发送post请求示例详解

    2022-02-26 16:50:22
  • 详解Python异常处理中的Finally else的功能

    2023-08-19 01:01:20
  • Oracle常见错误代码的分析与解决

    2010-07-26 13:01:00
  • Go语言协程处理数据有哪些问题

    2024-02-12 04:54:53
  • Python标准库sched模块使用指南

    2022-09-20 12:19:06
  • MySql使用skip-name-resolve解决外网链接客户端过慢问题

    2024-01-26 16:07:35
  • Python实现Word文档样式批量处理

    2022-01-13 01:16:05
  • 关注各网站的布局调整

    2008-09-23 18:14:00
  • asp之家 网络编程 m.aspxhome.com