我想在python中创建一个包含结构和数据的.sql文件的备份脚本,并将其保存在磁盘上?
问题是我想远程进行备份例程,因此文件将存储在不同的服务器中。为了确保如果我的服务器死机,数据不会随之消失。
有可能吗?
答案 0 :(得分:5)
我不明白你为什么要在Python中这样做,因为已经有了一个命令:mysqldump
。如果您使用以下命令指定:
mysqldump -u username -p database
它将查询您的密码,然后将SQL语句写入stdout。
您可以使用I / O重定向将其写入文件,例如:
mysqldump -u username -p database > file.sql
由于SQL是一种非常冗长的语言,您还可以通过将输出传递到gzip
压缩器来构造压缩文件:
mysqldump -u username -p database | gzip --best > file.sql.gz
如果你想在Python中“编写”一个自己进行调用的程序,可以使用subprocess
来完成:
import subprocess
username = 'the_username'
password = 'the_password'
database = 'my_fancy_database'
with open('file.sql','w') as output:
c = subprocess.Popen(['mysqldump', '-u',username,'-p%s'%password,database],
stdout=output, shell=True)
但这只是mysqldump
命令的一些逻辑。