Import & Export cơ sở dữ liệu là một tác vụ quan trọng trong phát triển phần mềm, giúp sao lưu, khôi phục dữ liệu và di chuyển thông tin giữa các máy chủ hoặc môi trường phát triển khác nhau. Một trong những phương pháp phổ biến để thực hiện điều này là sử dụng bản dump dữ liệu, cho phép lưu trữ toàn bộ cấu trúc và nội dung của cơ sở dữ liệu một cách an toàn.
Trong hướng dẫn này DataOnline sẽ giúp bạn học cách làm việc với bản dump cơ sở dữ liệu trong MySQL hoặc MariaDB (các lệnh tương đương nhau). Cụ thể, bạn sẽ thực hành xuất cơ sở dữ liệu ra file dump và nhập lại dữ liệu từ file đó, giúp bạn quản lý thông tin hiệu quả hơn trong các dự án thực tế.
Yêu cầu
Để nhập hoặc xuất một cơ sở dữ liệu MySQL hoặc MariaDB, bạn cần có:
-
Một máy ảo (virtual machine) với người dùng sudo không phải root.
Nếu bạn cần một máy chủ, hãy truy cập vào đây để tạo một DataOnline Droplet chạy bản phân phối Linux yêu thích của bạn. Sau khi tạo xong, hãy chọn bản phân phối từ danh sách và làm theo Hướng Dẫn Thiết Lập Máy Chủ Ban Đầu. -
MySQL hoặc MariaDB đã được cài đặt.
-
Một cơ sở dữ liệu mẫu được tạo trên máy chủ cơ sở dữ liệu của bạn.
Để tạo một cơ sở dữ liệu mẫu, hãy làm theo phần Tạo một cơ sở dữ liệu mẫu trong hướng dẫn “Giới thiệu về truy vấn trong MySQL”.
Bước 1 – Xuất cơ sở dữ liệu MySQL hoặc MariaDB
Tiện ích dòng lệnh mysqldump xuất cơ sở dữ liệu ra các file văn bản SQL. Điều này giúp việc chuyển giao và di chuyển cơ sở dữ liệu trở nên dễ dàng hơn. Bạn sẽ cần tên cơ sở dữ liệu và thông tin đăng nhập của tài khoản có quyền tối thiểu là quyền chỉ đọc toàn bộ cơ sở dữ liệu.
Sử dụng mysqldump để xuất cơ sở dữ liệu của bạn:
mysqldump -u username -p database_name > data-dump.sql
- username là tên người dùng để đăng nhập vào cơ sở dữ liệu.
- database_name là tên của cơ sở dữ liệu cần xuất.
- data-dump.sql là file trong thư mục hiện tại chứa kết quả xuất.
Lệnh trên sẽ không tạo ra đầu ra nào trên màn hình, nhưng bạn có thể kiểm tra nội dung của file data-dump.sql để xác nhận đó là một file dump SQL hợp lệ.
Chạy lệnh sau để xem 5 dòng đầu tiên của file:
head -n 5 data-dump.sql
Phần đầu của file sẽ trông giống như sau, hiển thị bản dump MySQL cho một cơ sở dữ liệu có tên database_name:
SQL dump fragment -- MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64) -- -- Host: localhost Database: database_name -- ------------------------------------------------------ -- Server version 5.7.16-0ubuntu0.16.04.1
Nếu có bất kỳ lỗi nào xảy ra trong quá trình xuất, mysqldump sẽ in chúng ra màn hình.
Bước 2 – (Nhập) Import cơ sở dữ liệu MySQL hoặc MariaDB
Để nhập một file dump đã có vào MySQL hoặc MariaDB, bạn cần tạo một cơ sở dữ liệu mới. Cơ sở dữ liệu này sẽ chứa dữ liệu được nhập.
Đầu tiên, đăng nhập vào MySQL với quyền root hoặc một người dùng có đủ quyền để tạo cơ sở dữ liệu mới:
mysql -u root -p
Lệnh trên sẽ đưa bạn vào giao diện shell của MySQL. Tiếp theo, tạo một cơ sở dữ liệu mới với lệnh sau. Trong ví dụ này, cơ sở dữ liệu mới được đặt tên là new_database:
CREATE DATABASE new_database;
Bạn sẽ thấy đầu ra xác nhận việc tạo cơ sở dữ liệu:
Output Query OK, 1 row affected (0.00 sec)
Sau đó, thoát khỏi MySQL shell bằng cách nhấn CTRL+D. Từ dòng lệnh thông thường, bạn có thể nhập file dump với lệnh:
mysql -u username -p new_database < data-dump.sql
usernamelà tên người dùng để đăng nhập vào cơ sở dữ liệu.new_databaselà tên của cơ sở dữ liệu mới được tạo.data-dump.sqllà file dump dữ liệu cần nhập, nằm trong thư mục hiện tại.
Nếu lệnh chạy thành công, nó sẽ không xuất ra bất kỳ thông báo nào. Nếu có lỗi xảy ra trong quá trình nhập, MySQL sẽ in thông báo lỗi ra màn hình. Để kiểm tra việc nhập dữ liệu có thành công hay không, đăng nhập lại vào MySQL shell, chọn cơ sở dữ liệu mới bằng lệnh USE new_database và sau đó sử dụng lệnh SHOW TABLES; hoặc các lệnh tương tự để xem dữ liệu.
Kết luận
Trong hướng dẫn này, bạn đã thực hiện xuất dữ liệu từ MySQL hoặc MariaDB bằng cách tạo một bản dump cơ sở dữ liệu, sau đó nhập file dump đó vào một cơ sở dữ liệu mới. Công cụ mysqldump cung cấp nhiều tùy chọn cấu hình linh hoạt, cho phép bạn điều chỉnh cách tạo file dump để phù hợp với nhu cầu sao lưu và di chuyển dữ liệu. Để khám phá thêm các thiết lập nâng cao, bạn có thể tham khảo tài liệu chính thức của mysqldump để tối ưu quá trình quản lý cơ sở dữ liệu của mình.
Để tìm hiểu thêm về các truy vấn MySQL, hãy xem hướng dẫn Giới thiệu về truy vấn trong MySQL.
中文 (中国)
English
