DevOps

MySQL dump với data chọn lọc

Thông thường với các data nhỏ các bạn có thể sử dụng PhpMyAdmin hoặc Adminer để trích xuất data mình cần một cách dễ dàng từ giao diện Web, nhưng với khối lượng data cực lớn thì cách đó không còn phù hợp nữa (browser sẽ bị đơ).

Vậy nên mình note lại cho các bạn cách dump database nhanh gọn với terminal CLI bằng mysqldump nhưng vẫn chọn lọc được data để dump chứ không nhất thiết phải dump toàn bộ database:

  • Dump với mệnh đề where
$ mysqldump -u<database_user> -p -h <database_hostname> <database_name> <table_name> —where=“<select_condition>”> /tmp/dbdump.sql

Example:
$ mysqldump -uroot -p -h localhost testdb temp_sensor —where=“temp > 20”> /tmp/dbdump.sql
  • Dump data từ một số bảng xác định
mysqldump -u<database_user> -p -h <database_hostname> <database_name> <table_name_1> [<table_name_2>...<table_name_n>] > /tmp/dbdump.sql

Example:
$ mysqldump -uroot -p -h localhost testdb temp_sensor humid_sensor > /tmp/dbdump.sql
  • Dump data từ một số bảng xác định ra file nén
mysqldump -u<database_user> -p -h <database_hostname> <database_name> <table_name_1> [<table_name_2>...<table_name_n>] |gzip -c > /tmp/dbdump.sql.zip

Example:
$ mysqldump -uroot -p -h localhost testdb temp_sensor humid_sensor > /tmp/dbdump.sql.zip

Leave a Reply