使用Python备份MySQL数据库

使用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

我正在尝试编写一个python脚本,它每午夜备份一次数据库。我使用的代码如下:

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或任何其他脚本语言。