想要快速建立開發、測試環境,資料庫的資料通常最難搞定。
此篇將隨意由 MySQL 的各個資料庫、各個 Table 倒出固定筆數的資料,然後快速匯入產生開發、測試環境。
- 注意:此篇「沒辦法」搞定資料相依性、資料匿名、資料隱藏等等。
使用 mysqldump 倒出 MySQL 所有資料庫(表) 固定筆數的資料
MySQL 的備份都使用 mysqldump,而 mysqldump 裡面還有很多功能可以用,可以各個資料庫 或者 各別 Table 倒出資料,可見下述:
- 語法:mysqldump -u [username] -p [dbname] {--opt} --where="true limit 100" > dump.sql
MySQL mysqldump sample 語法範例
- mysqldump --opt --where="true LIMIT 300" --all-databases > alldb_300.sql # 所有資料庫各倒出300筆資料
- mysqldump --opt --where="true LIMIT 1000" mydb > mydb_1k.sql # 從 mydb 的資料庫倒出 1000 筆資料
- mysqldump --opt --where="true LIMIT 1000" mydb mytable > mydb_mytable_1k.sql # 從 mydb 資料庫的 mytable 倒出 1000 筆資料
- mysqldump --skip-opt mydb --tables foo --where "foo_parent_id = 33 limit 100" > mydb-foo-33_100.sql # mydb 的 foo table 的 parend_id = 33 倒出 100筆資料
- 註:上述都將 -u root -pPASSWORD 等等省略,請自行補上
MySQL 匯入資料
- mysql -u root -p mydb_dev < mydb_1k.sql