2017-05-20 5 views
-2

我想在python中創建一個包含結構和數據的.sql文件的備份腳本,並將其保存在磁盤上?創建一個python腳本,從mysql數據庫創建一個包含結構和數據文件的sql轉儲

問題是我想做一個遠程備份的例程,所以這個文件將被存儲在不同的服務器上。爲了確保如果我的服務器死了,數據不會隨着它而死。

可能嗎?

+3

是的。耐克會說「只是做」 –

+0

嗚嗚,什麼意見 –

+0

這樣的問題值得這樣的評論..但如果你有這個任務**特定的**問題,請隨時編輯你的問題 –

回答

4

我不明白你爲什麼想在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命令的一些邏輯。

+0

感謝您的回答。這就是我一直在尋找的東西。我會標記在幾分鐘內解決 –

相關問題