![](/img/trans.png)
[英]Restore SQL database from backup of “C:\xampp\mysql\data” folder
[英]Mysql restore to restore structure and no data from a given backup (schema.sql)
嗨我使用mysql管理員並恢復了備份文件(backup.sql)。 我想使用恢復沒有數據的結構,它沒有給我一個選項。 我知道phpadmin提供了這個。 但是,我無法使用它。 任何人都能告訴我一個簡單的方法嗎?
僅轉儲數據庫結構:
cat backup.sql | grep -v ^INSERT | mysql -u $USER -p
這將執行backup.sql文件中的所有內容,除了將填充表的INSERT行。 運行之后,您應該擁有完整的表結構以及原始數據庫中的任何存儲過程/視圖/等,但是您的表都將為空。
您可以使用sed將轉儲中的ENGINE更改為BLACKHOLE
cat backup.sql | sed 's/ENGINE=(MYISAM|INNODB)/ENGINE=BLACKHOLE/g' > backup2.sql
這個引擎只會“吞下”INSERT語句,表格將保持為空。 當然,您必須使用以下方法再次更改ENGINE:
ALTER TABLE `mytable` ENGINE=MYISAM;
IIRC backup.sql文件(如果由mysqldump創建)只是文本文件中的SQL命令。 只需從文件的開頭復制粘貼所有“create ...”語句,但不要將“insert”語句復制到另一個文件中,而“mysql <newfile”則應該沒有任何數據的空數據庫。
沒有辦法告訴mysql客戶端跳過INSERT命令。 最簡單的方法是按原樣運行腳本並讓它加載數據,然后只是TRUNCATE所有表。
您可以編寫腳本來執行以下操作:
1:將轉儲導入新數據庫。
2:用循環截斷所有表。
3:再次導出數據庫。
4:現在你只有結構
您可以使用備份MYSQL數據庫結構
mysqldump -u username –p -d database_name > backup.sql
(您不應該在命令行提供密碼,因為它會導致安全風險。默認情況下,MYSQL會要求輸入密碼。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.