Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Import database từ database đã xuất ra từ mysqldump

ICT

1. Điều kiện ban đầu

Giả sử:

  • File dump: backup.sql

  • Database đích (đã tạo, đang trống): qlcl_hospital

  • User có quyền: qlcl_user


2. Import database (khuyến nghị – từ shell)

Giải nén

Thường mysqldump sẽ nén khi backup database, tạo ra file dạng backup.sql.gz

Cần giải nén trước khi import:

gunzip backup.sql.gz

Cách chuẩn và an toàn nhất

mysql -u qlcl_user -p qlcl_hospital < backup.sql

Nhập mật khẩu khi được yêu cầu.


3. Import bằng user root (nếu dump có CREATE / DROP)

 
mysql -u root -p qlcl_hospital < backup.sql

4. Kiểm tra kết quả import

Đăng nhập MariaDB:

mysql -u qlcl_user -p

Chọn database:

USE qlcl_hospital;

Kiểm tra bảng:

SHOW TABLES;

Kiểm tra dữ liệu mẫu:

SELECT COUNT(*) FROM ten_bang;

5. Một số tình huống thường gặp & cách xử lý

5.1 Dump có dòng CREATE DATABASE / USE

Nếu file dump có sẵn database name khác, vẫn import bình thường nếu anh/chị chỉ redirect vào DB đích.

Nếu muốn chắc chắn, có thể lọc bỏ dòng CREATE/USE:

 
sed -i '/^CREATE DATABASE/d;/^USE /d' backup.sql

5.2 Lỗi charset / collation

Sau khi import, nên chuẩn hóa:

 
ALTER DATABASE qlcl_hospital
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

5.3 Lỗi ERROR 1044 / ERROR 1045

→ User chưa có quyền trên database.

Khắc phục:

GRANT ALL PRIVILEGES ON qlcl_hospital.* TO 'qlcl_user'@'localhost';
FLUSH PRIVILEGES;

5.4 Dump rất lớn (vài GB)

Khuyến nghị:

 
mysql --max_allowed_packet=1G -u qlcl_user -p qlcl_hospital < backup.sql

Hoặc cấu hình trong /etc/mysql/my.cnf:

 
[mysqld]
max_allowed_packet=1G

6. Import kèm tiến trình (theo dõi %)

pv backup.sql | mysql -u qlcl_user -p qlcl_hospital

(cần cài pv)


7. Best practice (khuyến nghị cho hệ thống đang triển khai)

  • Import khi database đang trống

  • Không import trực tiếp vào production

  • Backup DB đích trước khi import

  • Với Drupal / QMS multisite:
    → luôn import 1 dump → 1 DB