我想在python中創建一個包含結構和數據的.sql文件的備份腳本,並將其保存在磁盤上?創建一個python腳本,從mysql數據庫創建一個包含結構和數據文件的sql轉儲
問題是我想做一個遠程備份的例程,所以這個文件將被存儲在不同的服務器上。爲了確保如果我的服務器死了,數據不會隨着它而死。
可能嗎?
我想在python中創建一個包含結構和數據的.sql文件的備份腳本,並將其保存在磁盤上?創建一個python腳本,從mysql數據庫創建一個包含結構和數據文件的sql轉儲
問題是我想做一個遠程備份的例程,所以這個文件將被存儲在不同的服務器上。爲了確保如果我的服務器死了,數據不會隨着它而死。
可能嗎?
我不明白你爲什麼想在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
命令的一些邏輯。
感謝您的回答。這就是我一直在尋找的東西。我會標記在幾分鐘內解決 –
是的。耐克會說「只是做」 –
嗚嗚,什麼意見 –
這樣的問題值得這樣的評論..但如果你有這個任務**特定的**問題,請隨時編輯你的問題 –