Các lệnh backup và restore MySQL Database trên Linux

Tác giả: 10/10/2022

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à wordpresswordpress1, 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--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_userswp_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 mysqlimportmysql để 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

Trả lời