开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2367|回复: 5
收起左侧

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

[复制链接]

结帖率:61% (35/57)
发表于 2013-6-1 12:37:39 | 显示全部楼层 |阅读模式   海南省海口市
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

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服务器上,

1.copy公钥到欲登录的远程服务器的远程用户的家目录下,例如:

cp id_dsa.pub到database:/home/user/.ssh/

若目录/home/user/.ssh/不存在,需要我们手工建立。

公钥文件更名为authorized_keys

修改公钥文件的访问权限

chmod 644 authorized_keys

结帖率:97% (36/37)

签到天数: 10 天

发表于 2023-2-23 22:07:22 | 显示全部楼层   广东省湛江市
谢谢分享
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2022-9-25 08:14:57 | 显示全部楼层   江苏省连云港市

我也学习学习.谢谢楼主.
回复 支持 反对

使用道具 举报

结帖率:37% (7/19)
发表于 2013-6-9 10:33:52 | 显示全部楼层   北京市北京市
太郁闷了              
回复 支持 反对

使用道具 举报

结帖率:75% (9/12)
发表于 2013-6-1 13:19:33 | 显示全部楼层   浙江省台州市
直接备份DATA文件夹就可以了
回复 支持 反对

使用道具 举报

结帖率:75% (9/12)
发表于 2013-6-1 13:18:25 | 显示全部楼层   浙江省台州市
{:soso_e127:}最好的备份方法就是好备份+360云盘同步。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表