如何设置远程mysql数据库自动备份数据库

如何设置远程mysql数据库自动备份数据库,第1张

使用mysqldump备份数据库

但远程备份一般都比较慢没办法保证数据库的一致性

例如:

备份所有库

mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword  --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 --all-databases > backup.sql

备份单库

mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword  --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 dbname > backup.sql

Linux下可以利用crontab系统每天定时备份MySQL数据库,以下是详细步骤:

1、创建保存备份文件的路径/mysqldata

#mkdir /mysqldata

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/bakmysql

输入

rq=` date +%Y%m%d `

tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者写成

rq=` date +%Y%m%d `

mysqldump –all-databases -u root -p980405 >/mysqldata/mysql$rq.tar.gz

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。

用python是非常方便的,非常方便就能备份mysql和sqlserver,

下面我们来具体看看如何用:

#coding=gbk

import os

import time

os.system("mysqldump -h192.168.0.2 -uddd -pggg xdreams >E:/mysqldack/xdreams/xdreamsfdfdf.txt")

上面就成功把0.2机器上的mysql数据库备份下来,

导入数据库:mysql -h192.168.0.2 -uroot -psz212 -P 7659 hotelguanli <G:/temp/2013-03-28-10-34-35.sql

下面是sqlserver的:

os.system("sqlcmd.exe -S 127.0.0.1,56678 -U sa -P 123456 -d 数据库名 -b -c cmd_end -Q \"backup database 数据库名 to disk='d:/sql.bak'\"")

看看,是不是很简单。

当然还可以通过os.path.getsize(r"d:/sql.bak")/1024来获取这个文件的大小,返回的是K,

备份文件还可以用时间值来命名:

如:

nowtime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))+""

改造上面一条:

os.system("mysqldump -h192.168.0.2 -uddd -pggg xdreams >E:/mysqldack/xdreams/xdreams"+nowtime+".txt")

如果再完善一点,就加个备份完成后发一封邮件到你邮箱里吧。

其它要注意到的一点就是sqlxerver和备份中,sqlserver服务器实列要支付远程连接,开启sql brower服务

两个数据库的密码不要含有"^"这个符号,因为在cmd里好像识别不到它,转义也不行,具体原因没查到.

现在,加在windows或linux的计划任务中去,每天执行它,至此,大功告成.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6739286.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存