mysql异地数据库备份实例代码
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-05 17:15:03 浏览: 评论:0
mysql现在应用在操作系统中包括有linux系统与windows系统,下面我来给大家在常用的两种系统中实现mysql异地数据库备份,有需要了解的朋友可参考.
windows的任务计划定时执行该文件,文件内容如下:
- cd F:/MySQLBackup
- f:
- mysqldump -h ip -uusername -ppassword dbname>F:/MySQLBackup/PersonBackupMonday.sql
- username:数据库用户
- password:数据库密码
- dbname:数据库名称
恢复数据:可以把数据拷贝到数据库的服务器中,代码如下:
C:/Documents and Settings/Administrator>mysql -u username –p
密码:password,代码如下:
- mysql> use dbname;
- mysql> source F:/MySQLBackup/PersonBackupMonday.sql
linux的中实现异地数据备份
在ubuntu测试通过,完成任务是本地备份,可用于服务器端,代码如下:
- #! /bin/bash
- echo "backupmysql V1.0"
- ###date stamp###
- datestamp=$(date +%Y-%m-%d)
- ###path ###
- startdir=/home/user/mysqlbackup
- ###bakfile prefix###
- fileprefix=sql
- echo "sqldump is starting.."
- ###bakup command####
- mysqldump -uuser -ppassword -l databasename > $startdir/$fileprefix$datestamp.sql
- echo "########################################################################"
- echo "sqldump is done"
- ###tar file ###
- cd $startdir
- echo "the current directory is :"
- pwd --phpfensi.com
- tar zcvf $startdir/$fileprefix$datestamp.tgz $fileprefix$datestamp.sql
- ###del the sql file###
- rm -rf $startdir/$fileprefix$datestamp.sql
- echo "#######################################################################"
- echo "...... Done"
如果远程将备份取到异地,如下我写的一个客户端用例(测试环境redhat-as-5),用sftp协议,代码如下:
- #! /bin/bash
- sftp root@www.domain.com << EOF
- cd /home/user/mysqlbackup
- lcd /home/mysqlbackup/
- -get fileprefix$(date +%Y-%m-%d).tgz
- quit
- EOF
注fileprefix$(date +%Y-%m-%d).tgz 与服务器端备份的相对应,路径为、home/user/mysqlbackup
get命令前加一个"-"以防止其执行错误时sftp执行过程被终止.
注:假设数据库服务器名字为database,备份数据的服务器的名字backup,我们需要在backup服务器端运行脚本来取得database服务器端的备份文件.
两台服务器采用sftp传输文件,但是现实shell中sftp登录需要交互式的密码,为了在远端服务器采用非交互的sftp,我们可以选择用密钥的方法进行验证登录权限,从而代替密码验证方式.
首先需要我们在backup生成密钥,并将其公钥上传到database服务器,因为shell脚本中使用sftp时必须用到密钥对(公钥和私钥),可以使用如下命令:$ssh-keygen -d,然后分发公钥.
为了使用密钥,必须将公钥分发到欲登录的远程backup服务器上,copy公钥到欲登录的远程服务器的远程用户的家目录下,例如:
cp id_dsa.pub到database:/home/user/.ssh/
若目录/home/user/.ssh/不存在,需要我们手工建立,公钥文件更名为authorized_keys,修改公钥文件的访问权限:chmod 644 authorized_keys
Tags: mysql异地备份 mysql备份实例
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)