使用Python备份MySQL数据库
我正在尝试编写一个python脚本,它每午夜备份一次数据库。我使用的代码如下:使用Python备份MySQL数据库,python,mysql,Python,Mysql,我正在尝试编写一个python脚本,它每午夜备份一次数据库。我使用的代码如下: from subprocess import call call (["mysqldump", "-u", "root", "-p*****", "normalisation", ">", "date_here.sql"]) 我遇到的第一个问题是,mysql认为“>”是一个表,而它不是,当我从命令行运行它时,查询工作正常(见下文) $mysqldump-u root-p****normalization>d
from subprocess import call
call (["mysqldump", "-u", "root", "-p*****", "normalisation", ">", "date_here.sql"])
我遇到的第一个问题是,mysql认为“>”是一个表,而它不是,当我从命令行运行它时,查询工作正常(见下文)
$mysqldump-u root-p****normalization>date_here.sql$ls
backup.py date_在此。sql
$ 第二,如何让脚本每天午夜自动运行?
第三,我需要将.sql文件保存为备份日期。使用shell脚本。已经有一百万人在线完成这项任务。您可以使用具有正确格式字符串的
date
命令生成文件名,并且可以使用cron使其在预定时间运行。您的命令失败,因为输出重定向是shell的功能,而不是mysqldump
。尝试使用Popen而不是call,如下所示:
from subprocess import Popen
f = open( "date_here.sql", "w" )
x = Popen( ["mysqldump", "-u", "root", "-p*****", "normalisation"], stdout = f )
x.wait()
f.close()
这将允许您在程序中处理重定向到stdout的操作。根据该参数,不需要Perl、Python、Ruby或任何其他脚本语言。