博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计划备份mysql数据库
阅读量:6247 次
发布时间:2019-06-22

本文共 2261 字,大约阅读时间需要 7 分钟。

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




     本文转自fine102 51CTO博客,原文链接:http://blog.51cto.com/gzmaster/108896,如需转载请自行联系原作者

你可能感兴趣的文章
C语言的左位移能不能超过8位?
查看>>
Tomcat如何检测内存泄漏
查看>>
APP多版本共存,服务端如何兼容?
查看>>
上云有隐性成本? 用户要警惕五个坑
查看>>
100G及以上超高速光通信系统关键技术浅析
查看>>
BYOD:寻求便捷与安全的平衡
查看>>
我的WCF之旅(3):在WCF中实现双工通信
查看>>
mysql设置独立表空间
查看>>
IDC:阻碍中国云计算发展的四大误区
查看>>
实现二叉树以及二叉树遍历数据结构
查看>>
java关键字(详解)
查看>>
.NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?
查看>>
通过反射克隆对象,对象复制(克隆)工具类
查看>>
走红日本 阿里云如何能够赢得海外荣耀
查看>>
Live Messenger/MSN 最小化到托盘区
查看>>
2017CCPC秦皇岛现场赛——L - One-Dimensional Maze
查看>>
【译】使用 currentColor 属性写出更好的 CSS 代码
查看>>
手把手教你写Linux设备驱动---input子系统(一)--input事件应用程序的读写实现(基于友善之臂4412开发板)...
查看>>
为什么总是优衣库?前高管曝成功秘密
查看>>
云计算落地衍生云存储 数据中心大变革
查看>>