iT邦幫忙

0

有關 MySQL 使用 mysqldump 備份及還原資料庫的問題

xx7 2021-08-30 18:27:43431 瀏覽

各位大大好

我有 A B C 這三個資料庫
如果使用 mysqldump 指令備份系統中的全部資料庫 (--all-databases)
這樣資料庫 A B C 都會一起備份

#備份
mysqldump -u root -p --all-databases > all_db_backup.sql
#還原
mysql -u root -p < all_db_backup.sql

但是這樣還原時就是將資料庫 A B C 一起還原
請問可以從 all_db_backup.sql 裡面單獨還原特定的資料庫(假設資料庫B)嗎?
還是就是無解,得乖乖一個一個備份?

Siang iT邦新手 5 級 ‧ 2021-08-30 22:07:55 檢舉
可從all_db_backup.sql 手動過濾出指定DB的(建庫表/insert 資料語法 )匯成新檔在做恢復~
https://code.yidas.com/mysqldump/ 這邊有語法教學,
你要備份單一DB就下單一DB
如果你DB太多,你可以自己寫批次檔,讓他循環備份
先把 DB & TABLE 的總表 抓出來,然後寫批次檔讓他逐表備份
而且我強烈建議逐表備份,資料量少還好,資料量多會死的
參考
https://www.google.com/search?q=table+by+table+backup+mysqldump+batch
https://www.google.com/search?q=table+by+table+backup+mysqldump+python

1 個回答

0
Yaowen
iT邦新手 4 級 ‧ 2021-08-31 09:50:25

備份

mysqldump -u root -p database table > exp.sql;
database :資料庫名稱 
table:資料表名稱 (不填就只是會出該資料庫)
exp.sql:匯出資料庫檔案

還原

mysql -u root -p --default-character-set=utf8 database < exp.sql   

我要發表回答

立即登入回答