備份資料庫其中一種方式是使用 mysqldump
指令,例如我要備份一個名為db1的資料庫:
|
|
若只要備份特定的資料表時,有三種方式
-
排除/忽略特定資料表 (Exclude / Ignore) 使用參數
--ignore-table
去排除,需完整名稱 (即 database**.**table);多個 table 無法使用逗點 (comma) 串接,需個別指定。適用於排除少數資料表1
mysqldump -u root -p123456 myDB --ignore-table=myDB.logs --ignore-table=myDB.users > dump.sql
-
指定資料表名稱 (Include) 在資料庫名稱後面指定資料表名稱,可指定多個資料表;無法使用 * 去指定特殊的 prefix / suffix;適用於匯出少數資料表。
1
mysqldump -u root -p123456 myDB table_1 table_2 table_3 > dump.sql
-
包含特定資料表前綴/後綴或特定 pattern 的資料表 (Include prefix / suffix / pattern) 利用 sub command 在內層執行 SQL 先取得指定資料表名稱後,再執行外層的
mysqldump
,適用於資料表數量眾多,需匯出指定資料表也較多的資料庫。1
mysqldump -u root -p123456 myDB $(mysql -u root -p123456 myDB -Bse SHOW TABLES LIKE 'my_table_%') > dump.sql
一般情況下用 LIKE
語法就夠了,若情況特殊,用 REGEXP
語法去撈也是可行的,需注意 WHERE
的欄位是 Tables_in_資料庫名稱
。