我在 Python 中编写了两个小函数来调用mysqldump
和mysql
从控制台调用,因此我能够创建数据库备份然后恢复它:
# Makes a backup current database status
def backupDatabase():
if(os.path.exists('myDatabaseBackup.sql')):
os.remove('myDatabaseBackup.sql')
call(['mysqldump', '-u myUsername myDatabase > myDatabaseBackup.sql'])
# Restores database
def restoreDatabase():
call(['mysql', '-u myUsername myDatabase < myDatabaseBackup.sql'])
然而,他们没有工作。我已经读过该调用获取两个值:可执行文件和参数,但看起来参数被忽略了,因为调用 backupDatabase 后的输出是:
用法:mysqldump [OPTIONS] database [tables] OR ...更多选项,se mysqldump --help
怎么了?我知道我可以使用Pipes
(我目前不知道如何使用,只知道它们存在并且是替代品),但是由于这看起来是一个非常简单的任务,我想subprocess.call
应该就足够了。那么,是否有可能解决这个问题subprocess.call
?(如果没有,请提供一些帮助Pipes
或任何其他解决方案)。
另外,我将MySQLdb
包用于其他目的,所以如果可以使用这个包以某种方式备份和恢复,那就太好了。