这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linux技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益。
注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟练的掌握了操作的技巧,也能在测试过程中发现问题,寻找解决方法。
说明:我这里要把MySql数据库存放目录/var/lib/mysql下面的data数据库备份到/home/mysql_data里面
并且保存为mysqldata_bak_2012_12_19.tar.gz的压缩文件格式(2012_12_19是指备份执行时当天的日期)
然后只保留最近7天的备份
再把备份文件通过ftp服务器上传到指定空间,只保留最近7天的数据
实现步骤:
1、创建保存备份文件的路径:/home/mysql_data
cd /home
mkdir mysql_data
2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh
cd /home
cd mysql_data
touch mysql_databak.sh
vim mysql_databak.sh
输入以下内容:
#######################################################################################################
#!/bin/sh
DUMP=/usr/bin/mysqlmp #mysqlmp备份文件执行路径
OUT_DIR=/home/mysql_data #备份存放路径
LINUX_USER=root #系统用户名
DB_NAME=data #要备份的数据库名字
DB_USER=root #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错
DB_PASS=123456 #数据库密码
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
cd $OUT_DIR #进入备份存放目录
DATE=`date +%Y_%m_%d` #获取当前系统时间
OUT_SQL="$DATE.sql" #备份数据库的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份
tar -czf $TAR_SQL ./$OUT_SQL #压缩为.tar.gz格式
rm $OUT_SQL #删除.sql格式的备份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者
find $OUT_DIR -name "mysqldata_bak_*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件
deldate=` date -d -7day +%Y_%m_%d ` #获取7天前的时间
ftp -n<<!
open 192.168.1.1 21 #打开ftp服务器。21为ftp端口
user admin 123456 #用户名、密码
binary #设置二进制传输
cd mysqlbak #进入ftp目录(这个目录必须为ftp空间真实存在的目录)
lcd /home/mysql_data #列出本地目录
prompt
put mysqldata_bak_$DATE.tar.gz mysqldata_bak_$DATE.tar.gz #上传目录中的文件
delete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #删除ftp空间7天前的备份
close
bye !
#######################################################################################################
3、修改文件属性,使其可执行
chmod +x /home/mysql_data/mysql_databak.sh
4、修改/etc/crontab
vi /etc/crontab
在下面添加
30 1 * * * root /home/mysql_data/mysql_databak.sh
表示每天凌晨1:30分执行备份
5、重新启动crond使设置生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #设为开机启动
service crond start #启动
每天你在/home/mysql_data目录下面可以看到类似mysqldata_bak_2012_12_19.tar.gz这样的压缩文件
如果需要恢复文件的时候,只需要把这个文件解压即可
解压缩tar -zxvf mysqldata_bak_2012_12_19.tar.gz
至此,我们完成了Linux中Mysql数据库自动备份并上传到远程FTP服务器的部署。
⑵ 如何用FTP把数据库备份
informix数据库后台 shell命令
----------------------------
dbexport 数据库名
ftp 服务器地址
用户名
密码
mput 数据库名.exp
bye
-----------------------------
Sqlserver数据库查询分析器命令
----------------------------
backup database 数据库名 to disk='所存路径'
或者直接用sql server所带的作业调度来执行数据库的备份
然后用写一个批处理程序
ftp
open 服务器地址
用户名
密码
mput 所存路径
bye
然后用windows计划任务来执行这个批处理命令。
-----------------------------
⑶ 数据库服务器 和FTP服务器之间有什么联系
不确切的说:比如网站内容10G、是存放在网页服务器空间的(你所说的 ftp),而将网站内容10G压缩后、如2G(这个是存放在数据库服务器空间的),一般数据库空间 为 网页空间的 1/5即可。
⑷ 如何通过ftp上传mysql到空间或下载mysql数据库的备份资料新手,求指教,详细点,谢了
一般在空间控制面板中有数据库FTP信息的,设置方法同空间FTP,设置好登录即可。
如果只是为了PHP程序安装,那么建议用帝国备份王试试,使用方法,网上搜一下。
⑸ 用FTP上传完文件后怎么设定首页和关联文件
……一般的web服务器默认根目录的index.html就是首页,你把你的首页名命名为index.html放在根目录下就可以了关联可用连接,比如在index.html的代码里加上<a href='另一个页面路径'>内容</a>名字是<titile>网站的名字</title>
⑹ ftp怎么连接sqlservice数据库 网站传上去了,数据也传上去了。
FTP主要是用来上传网站源码的,如果你的数据库是access数据库,可以直接上传,不用改连接数据库的路径就能直接用了。
但是如果是SqlServer或者MySql数据库,必须到空间控制面板去把数据库导入到空间里面,直接上传到FTP里面是没用的,导入成功以后,还需要在程序源码中修改连接数据的用户名和密码,必须跟空间分配的那个保持一致。
如果你不知道数据库在哪儿连接上传的话,最好是咨询下你的空间商,不同空间商控制面板都不一样,所以还是咨询你的空间商比较靠谱。
⑺ vb6 如何连接ftp服务器的access数据库
首先,FTP是文件传输协议,FTP服务器是用来上传或下载文件的,跟数据库连接没有一毛钱的关系,VB6可以通过INET控件把数据库下载到本地再使用,但这样就失去任何意义了。
其次,ACCESS数据库属于单机文件型数据库,不能用在网络多用户环境。在局域网中,ACCESS数据库可以放到一个共享文件夹中供其他电脑使用,但这仍然属于单机使用范畴,不是网络应用。如果实在要在广域网中用,可以把ACCESS数据库放到WEB服务器,然后用ASP搞个数据接口程序,VB6程序用xmlhttp+XML技术通过这个ASP程序间接实现对数据库的读写。不过这样做的效率与安全性是惨不忍睹的。
⑻ ftp怎么连接sqlservice数据库 网站传上去了,数据也传上去了。
你好!
FTP连接不到sqlserver上,只能连到空间上。SQLSERVER有两种方法,一是传到空间上,让空间商帮你弄,别一种是通过你自己本地SQL数据库连接到服务器的数据库上。如果你要上传到空间上就是导出然后压缩到压缩包传上去。希望对你有帮助
如果对你有帮助,望采纳。
⑼ 如何在FTP空间配置数据库
一 备份数据 1,利用PW后台的数据备份功能进行备份.注意的是在备份数据的时候,为了数据的完整性,建议最好先关闭论坛,后台更新所有缓存和索引. 2,利用phpmyadmin,进行备份,具体如何备份,这里就不介绍.不清楚的可以查阅相关文档,很简单的.这里备份的文件是一个独立sql文件. 以上方法一般适用与中小型论坛的备份,数据量比较小的时候还是很实用的,一般多为虚拟主机用户使用.大型论坛的备份一般是 3,4两种操作..主要是比较简单操作,一些我个人认为比较复杂且不是很实用的方法就不介绍了不如通过Mysqlhot,使用binlog机制,增加mysql的事物日志记录等,这里就不介绍了.以下下操作一般有服务器权限的朋友才可以的. 3,直接复制或者打包数据库文件,复制文件夹,大家应该都明白,我们来讲打包,linux下用tar命令实现简单有效,速度快.Win 下,直接用winrar或者winzip 搞定.注意需要暂停mysql服务. 4,Mysqlmp,是mysql自带的脚本,假如数据库名为abc,用户名为:abcuser,密码为123,,那应该使用 命令: mysqlmp -uabcuser -p123 adc > pwabc_bak.sql ,pwabc_bak.sql 你可以任意的命名. 二 数据还原 1,针对第一种备份方法,也是最普遍使用的.在恢复论坛数据的时候,要关闭php.ini文件中的safe mode,恢复完数据后,再打开SAFE MODE就可以了。(自己服务器得才需要此设置,普通虚拟空间用户不用此设置) >>用FTP软件下载老论坛所有文件 >>将所有文件上传至新空间 >>打开网页 你的论坛地址/admin.php 用你的论坛创始人帐号登陆 >>数据恢复(随便点一个文件,程序会自动将剩余文件导入的) 以上方法可保留所有数据及插件和模板。 对于不需要模板的或者不需要原来的插件的 >>老论坛备份数据,用FTP拉到本地。(具体在data目录下) >>上传程序包里的文件到新空间,全新安装 >>用FTP软件将备份的数据上传到新空间的data目录下 >>用论坛创始人帐号进入后台,数据恢复 如果后台数据库忘记了,可以直接修改sql_config.php里的数据库帐号和创始人帐号密码!这里输入的创始人密码不能直接是明文.需要是MD5加密过后的. 这里就给大家一个简单的 MD5密文 [] 明文 [123456]之后就可以通过/admin.php 刚才修改的帐户密码登陆论坛了.. 2,对于phpmysql备份的数据,在2M以下可以直接导入数据库中(至于怎么导,看相关文档,很简单.)数据量很大的情况只能到服务器上,服务器上 mysql 命令导入(具体导入将在"4"中介绍)虚拟主机用户,那么就得联系你的空间商,让他们协助完成数据的恢复. 3,对于打包数据库文件的,可以直接解压 把数据库文件 放到你数据库名的目录下. 在linux下注意数据库文件的权限.一般都是mysql:mysql. Win 下关系不是很大,除非你做了特殊的权限设置. 4,对于mysqlmp 导出数据, 按照备份数据中的举例用户来演示, 则命令为: mysql -uabcuser -p123 abc < abc_bak.sql 注意: 无任何错误一般来说就是正常完成。通常在使用 phpmyadmin 导入的sql脚本中有create database语句,会导致导入数据出错,因为database 已经存在,把这段语句删除之,再次检查客户的建表语句前是否有drop表的语句,如果没有,而原数据库存在同名表格,也会出错,这时需要清空原数据库.