mysql异地数据库备份实例代码

互联网十八般武艺 互联网十八般武艺

mysql现在应用在操作系统中包括有linux系统与windows系统,下面我来给大家在常用的两种系统中实现mysql异地数据库备份,有需要了解的朋友可参考.

windows的任务计划定时执行该文件,文件内容如下:

  1. cdF:/MySQLBackup
  2. f:
  3. mysqldump-hip-uusername-ppassworddbname>F:/MySQLBackup/PersonBackupMonday.sql
  4. username:数据库用户
  5. password:数据库密码
  6. dbname:数据库名称

恢复数据:可以把数据拷贝到数据库的服务器中,代码如下:

C:/Documents and Settings/Administrator>mysql -u username –p

密码:password,代码如下:

  1. mysql>usedbname;
  2. mysql>sourceF:/MySQLBackup/PersonBackupMonday.sql

linux的中实现异地数据备份

在ubuntu测试通过,完成任务是本地备份,可用于服务器端,代码如下:

  1. #!/bin/bash
  2. echo"backupmysqlV1.0"
  3. ###datestamp###
  4. datestamp=$(date+%Y-%m-%d)
  5. ###path###
  6. startdir=/home/user/mysqlbackup
  7. ###bakfileprefix###
  8. fileprefix=sql
  9. echo"sqldumpisstarting.."
  10. ###bakupcommand####
  11. mysqldump-uuser-ppassword-ldatabasename>$startdir/$fileprefix$datestamp.sql
  12. echo"########################################################################"
  13. echo"sqldumpisdone"
  14. ###tarfile###
  15. cd$startdir
  16. echo"thecurrentdirectoryis:"
  17. pwd--phpfensi.com
  18. tarzcvf$startdir/$fileprefix$datestamp.tgz$fileprefix$datestamp.sql
  19. ###delthesqlfile###
  20. rm-rf$startdir/$fileprefix$datestamp.sql
  21. echo"#######################################################################"
  22. echo"......Done"

如果远程将备份取到异地,如下我写的一个客户端用例(测试环境redhat-as-5),用sftp协议,代码如下:

  1. #!/bin/bash
  2. sftproot@www.domain.com<<EOF
  3. cd/home/user/mysqlbackup
  4. lcd/home/mysqlbackup/
  5. -getfileprefix$(date+%Y-%m-%d).tgz
  6. quit
  7. 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

相关广告
  • mysql异地数据库备份实例代码 mysql异地数据库备份实例代码 mysql异地数据库备份实例代码
相关阅读

mysql异地数据库备份实例代码

2019/10/10 17:34:56 | 谷歌SEO算法 | 微服务