Backup-Restoration

如何將 phpmyadmin 的伺服器備份拆分為數據庫備份?

  • July 31, 2012

我有一個用 phpmyadmin 創建的大 .sql 文件來備份我的開發數據庫。有沒有辦法將這個大備份分成幾個文件,每個文件用於一個單獨的數據庫?文件太大,無法手動處理

檢查這裡也許它會幫助你http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/

但是,如果您可以遠端連接到數據庫,甚至可以訪問 shell,您應該使用 mysqldump 對每個數據庫甚至每個表進行備份。

這個 id 簡單的腳本將為您完成:


#!/bin/bash
dbuser=
dbpass=
backupdir=
$mysql -e "show databases" --user=$dbuser --password=$dbpass | $grep -v "Database" | while read dbase
   do
           $mkdir -p $backupdir/$dbase/
           $mysqldump  -c -u $dbuser --password=$dbpass $dbase > $backupdir/$dbase/full-$dbase.sql 

           #if dont want to dump one table per sql file then erase next 4 lines then it will dump one database per sql file   
           $mysql -e "show tables" --user=$dbuser --password=$dbpass $dbase | $grep -v "Tables_in_" | while read dbtable
               do
                     $mysqldump -c -u $dbuser --password=$dbpass $dbase $dbtable > $backupdir/$dbase/$dbtable.sql
               done
   done

您必須更改/放置 dbuser dbpass 和 backupdir 並且腳本應該對伺服器上的每個數據庫進行完全轉儲(每個 sql 文件一個數據庫,每個 sql 文件在數據庫中的每個表)。此範例應在伺服器上執行,但只需稍作修改,您就可以使用它進行遠端轉儲。

引用自:https://serverfault.com/questions/399070