Các lệnh backup và restore MySQL Database trên Linux
Giới thiệu
Trong bài viết này mình sẽ giới thiệu các lệnh dùng để backup và restore MySQL Database
Trên Linux, để backup MySQL thì chúng ta sử dụng lệnh mysqldump
, còn để restore thì sử dụng lệnh mysqlimport
. Đây là hai lệnh sử dụng rất nhiều trong việc quản lý MySQL
I. Cách backup MySQL Database
mysqldump
được sử dụng để tạo ra file backup database ở local hoặc thông qua remote, kết quả của lệnh này là sẽ trả về một file db ở dạng SQL duy nhất
Để backup với lệnh mysqldump
thì điều kiện là database cần backup phải tồn tại trên server, và tài khoản bạn đang truy cập vào có quyền truy xuất đối với database đó. Tất cả thông tin sẽ được khai báo vào lệnh mysqldump
theo cú pháp sau:
# mysqldump -u [username] -p [password] [database_name] > [backup_file.sql]
Trong đó:
- [username]: là tên đăng nhập vào MySQL có quyền truy xuất đến database.
- [password]: là mật khẩu của username.
- [database_name]: là tên của database cần backup.
- [backup_file.sql]: là tên file backup được lưu lại.
1. Backup một database duy nhất
Để backup một database thì ta sử dụng cú pháp sau
# mysqldump -u root -p wordpress > wordpress.sql
Trong lệnh này thì database cần backup là wordpress
, và file sau khi backup là wordpress.sql
2. Backup nhiều database cùng lúc
Nếu muốn backup nhiều database vào một file duy nhất thì bạn hãy nhập tên database cách nhau bởi khoảng trắng và thêm option --databases
# mysqldump -u root -p --databases wordpress wordpress1 > wordpress.sql
Trong lệnh trên mình đã backup 2 database tên là wordpress
và wordpress1
, và file sau khi backup là wordpress.sql
3. Backup tất cả database của user
Nếu muốn backup tất cả database của một user thì sử dụng cú pháp sau.
# mysqldump -u root -p --all-databases > database.sql
Tham số --all-databases
cho biết bạn muốn backup mọi database của user root
4. Chỉ backup database structure table
Nếu bạn chỉ muốn backup lại cấu trúc các table trong database thì sử dụng tham số --no-data
# mysqldump -u root -p --no-data wordpress > wordpress.sql
5. Chỉ backup dữ liệu, không backup cấu trúc db
Nếu bạn chỉ muốn backup dữ liệu mà không muốn backup cấu trúc của các table thì sử dụng hai tham số là --no-create-db
và --no-create-info
# mysqldump -u root -p --no-create-db --no-create-info wordpress > wordpress.sql
6. Backup một table trong database
Nếu chỉ muốn backup một table thôi thì hãy cung cấp tên database và tên table
# mysqldump -u root -p wordpress wp_users > wordpress_user.sql
Trong đó wordpress
là tên database, còn wp_users
là tên table
7. Backup nhiều table trong một database
Tương tự như trường hợp trên, ta chỉ cần thêm danh sách table cần backup và cách nhau bởi khoảng trắng là được.
# mysqldump -u root -p wordpress wp_users wp_comments > wordpress_table.sql
Lệnh trên thực hiện backup 2 table là wp_users
và wp_comments
8. Backup thông qua remote đến server của database
Trường hợp này bạn cần phải cung cấp địa chỉ IP của server chứa database
# mysqldump -h 192.168.1.100 -u root -p wordpress > wordpress.sql
Sau khi nhập lệnh sau, hệ thống sẽ yêu cầu bạn nhập mật khẩu truy cập ssh của server có IP 192.168.1.100. Bạn cần nhập đúng mật khẩu để thực hiện backup.
II. Cách restore MySQL Database
Ở phần I mình đẫ hướng dẫn các bạn backup và kết quả của việc backup là tạo ra một file có đuôi .sql
. Bây giờ muốn restore nó ta có thể sử dụng PHP MyAdmin hoặc một công cụ quản lý db nào đó, tuy nhiên đối với php myadmin ta có thể không restore được đối với những database có dung lượng lớn, vì thế trong bài viết này mình sẽ sử dụng lệnh mysqlimport
và mysql
để phục hồi
Đây là cú pháp sử dụng lệnh mysql
# mysql -u [username] -p[password] [database_name] < [backup_file.sql]
Đầu tiên bạn cần phải chắc chắn rằng database mà bạn cần restore trống rỗng, nếu chưa có, hãy tạo nó.
Ví dụ:
# mysql -u root -p wordpress < wordpress.sql
Trong ví dụ này mình đã có một database tên là wordpress
và file backup database tên là wordpress.sql
nên sẽ chạy lệnh trên để restore file backup có sẵn vào database của mình
Đối với trường hợp database của bạn đã tồn tại trên server và nó không rỗng thì ta có thể sử dụng lệnh mysqlimport
# mysqlimport -u root -p wordpress < wordpress.sql
Tùy vào từng trường hợp mà bạn chọn giải pháp cho riêng mình
Trên đây là cách backup và restore MySQL Database bằng cách sử dụng mysqldump
trong Linux.
Chúc các bạn thực hiện thành công và hẹn gặp lại các bạn trong các bài viết tiếp theo tại wiki.nhanhoa.com