MITOM

← Danh sách bài viết

Nội dung được biên soạn lại từ Anh Nguyen - kèm nguồn bài viết (nếu có)

Khi làm việc với WAMP (Windows + Apache + MySQL + PHP), bạn có sẵn MySQL server để quản lý database cho website. Tuy nhiên, khi cần import file SQL lớn (vài GB đến chục GB), dùng phpMyAdmin gần như luôn thất bại vì giới hạn upload_max_filesizemax_execution_time. Cách giải quyết tối ưu là import trực tiếp bằng dòng lệnh (CLI).

1️⃣ Xác định đường dẫn MySQL trong WAMP

Trên Windows, MySQL được cài kèm trong thư mục WAMP:

C:\wamp64\bin\mysql\mysql8.0.28\bin

(Thay 8.0.28 bằng đúng phiên bản MySQL của bạn.)

2️⃣ Mở Command Prompt và truy cập MySQL

  1. Nhấn Windows + R → gõ cmdEnter

  2. Di chuyển đến thư mục MySQL bin:

cd C:\wamp64\bin\mysql\mysql8.0.28\bin
  1. Đăng nhập MySQL:
mysql -u root -p

(Nhấn Enter nếu chưa đặt mật khẩu cho root.)

3️⃣ Tạo Database trước khi import

Nếu database chưa tồn tại:

CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;

4️⃣ Import file SQL qua CLI

Ví dụ bạn có file:

C:\Projects\DB\backup.sql

Import bằng lệnh:

mysql -u root -p my_database < C:\Projects\DB\backup.sql

Nếu MySQL chạy trên port khác (vd: 3307):

mysql -u root -p -P 3307 my_database < C:\Projects\DB\backup.sql

5️⃣ Import file nén (.zip / .gz)

Khi file database quá lớn (vài GB), bạn nên dùng file nén để tránh lỗi “Out of Memory” hoặc “Server has gone away”.

Cách 1: Giải nén trước rồi import

Giải nén file .zip ra .sql, rồi import như bình thường:

mysql -u root -p my_database < E:\Projects\DB\backup.sql

Cách 2: Import trực tiếp từ file .gz (Linux tools trên Windows)

Nếu bạn cài Git Bash hoặc WSL (Windows Subsystem for Linux):

zcat C:/Projects/DB/backup.sql.gz | "C:/wamp64/bin/mysql/mysql8.0.28/bin/mysql.exe" -u root -p my_database

hoặc

gunzip -c C:/Projects/DB/backup.sql.gz | "C:/wamp64/bin/mysql/mysql8.0.28/bin/mysql.exe" -u root -p my_database

Cách 3: Import file .zip bằng PowerShell

Dành cho Windows 10+:

powershell -command "Expand-Archive -Path 'C:\Projects\DB\backup.zip' -DestinationPath 'D:\Projects\DB\temp' -Force; Get-Content 'D:\Projects\DB\temp\backup.sql' | & 'C:\wamp64\bin\mysql\mysql8.0.28\bin\mysql.exe' -u root -p my_database"

(PowerShell sẽ tự giải nén và stream nội dung vào MySQL.)

6️⃣ Tại sao import file nén nhanh và ổn định hơn

Tiêu chíFile .sql thườngFile .zip / .gz
Kích thước~10GB~2GB (nén 70–80%)
Số lần đọc đĩaRất nhiềuÍt hơn đáng kể
RAM tiêu thụCao, dễ lỗi Out of MemoryThấp, do giải nén theo luồng
Tốc độ1–2 MB/s15–40 MB/s
Tỷ lệ thành côngThấp, dễ timeoutCao, ổn định hơn

Lý do: File nén giúp MySQL đọc tuần tự (stream), giảm gánh nặng cho RAM và I/O.

7️⃣ Cấu hình MySQL để import file lớn

Mở file:

C:\wamp64\bin\mysql\mysql8.0.28\my.ini

Tìm và tăng các giá trị sau:

[mysqld]
max_allowed_packet = 1024M
innodb_log_file_size = 512M
net_read_timeout = 600
net_write_timeout = 600
wait_timeout = 28800

Rồi Restart WAMP để áp dụng thay đổi.

8️⃣ Khi database quá lớn (10GB+)

Giải pháp 1: Dùng file .gz và stream trực tiếp

gunzip -c D:/Projects/DB/backup.sql.gz | "C:/wamp64/bin/mysql/mysql8.0.28/bin/mysql.exe" -u root -p my_database

✔ Không cần giải nén ra ổ cứng ✔ Import nhanh hơn và ít lỗi hơn

Giải pháp 2: Chia nhỏ file .sql

Nếu bắt buộc dùng .sql, bạn có thể chia file bằng script như SplitMySQLDump hoặc công cụ CLI:

mysqldump --split --lines=500000 -u root -p my_database > part_

Sau đó import từng phần một:

mysql -u root -p my_database < part_1.sql

Giải pháp 3: Tăng dung lượng bộ nhớ tạm

Khi import các file cực lớn, nên tăng bộ nhớ hệ thống ảo (pagefile) hoặc đảm bảo còn trống ít nhất gấp 2 lần dung lượng file trên ổ C:/.

9️⃣ Tạo file batch tự động import

Nếu bạn thường xuyên import file .gz, có thể tạo file import_db.bat như sau:

@echo off
set MYSQL_PATH=C:\wamp64\bin\mysql\mysql8.0.28\bin
set DB_NAME=my_database
set FILE_PATH=E:\Projects\DB\backup.sql.gz

echo Importing %FILE_PATH% into %DB_NAME%
gunzip -c %FILE_PATH% | "%MYSQL_PATH%\mysql.exe" -u root -p %DB_NAME%
pause

Chỉ cần double click để import — không cần gõ lệnh thủ công.

🔟 Lưu ý bảo mật & hiệu năng

Kết luận

Import MySQL qua CLI trên Windows bằng WAMP là phương pháp ổn định, nhanh và an toàn nhất cho database lớn.

Khi dữ liệu vượt quá vài GB:

Làm đúng các bước này, bạn có thể import database 10-50GB mà không sợ treo CMD, lỗi Server has gone away hay Out of memory.

Trải nghiệm tốt nhất từ thực hành — Anh Nguyen

← Danh sách bài viết
  • Triển khai Blog Astro + CI/CD Đa Nền Tảng

    Triển khai Blog Astro + CI/CD Đa Nền Tảng

    Bài viết mình tổng hợp toàn bộ quá trình triển khai blog cá nhân với Astro (sử dụng Sveltia CMS), multi deploy, CI/CD GitHub Actions, cache busting, multi host (GitHub Pages + Vercel + Render + Netlify + DO + Cloudflare + Neocities + Surge + Wasmer)… từ A → Z.

  • So Sánh toàn diện LocalWP, MAMP, Laragon, XAMPP và WAMP Server Trên Windows

    So Sánh toàn diện LocalWP, MAMP, Laragon, XAMPP và WAMP Server Trên Windows

    Bạn đang tìm môi trường local để phát triển PHP hoặc WordPress trên Windows? Bài viết này sẽ giúp bạn hiểu rõ sự khác biệt giữa LocalWP, Laragon, MAMP, XAMPP, và WAMP Server – để chọn ra công cụ tối ưu nhất cho quy trình làm việc của bạn.

  • Công cụ mã nguồn mở kích hoạt Windows và Office kèm tính năng debug nâng cao

    Công cụ mã nguồn mở kích hoạt Windows và Office kèm tính năng debug nâng cao

    Hỗ trợ các phương thức kích hoạt như HWID, Ohook, KMS38 và Online KMS. Công cụ này cung cấp khả năng xử lý sự cố mạnh mẽ và kích hoạt sản phẩm Microsoft hiệu quả, đáp ứng nhiều nhu cầu người dùng theo cách linh hoạt, có thể tùy biến.

  • Plugin tối ưu ảnh tốt nhất cho Wordpress là gì? Optimole vs ShortPixel vs Imagify vs EWWW vs Smush

    Plugin tối ưu ảnh tốt nhất cho Wordpress là gì? Optimole vs ShortPixel vs Imagify vs EWWW vs Smush

    Đâu là plugin tối ưu ảnh tốt nhất cho Wordpress WooCommerce & blog nhiều ảnh? So sánh thực chiến Optimole, ShortPixel, Imagify, EWWW, Smush - Mình sẽ đi từ phương pháp test → kết quả → phân tích từng plugin → xếp hạng & khuyến nghị theo use case (online store, blog nhiều ảnh).

  • Những cách đơn giản để kích hoạt Windows 11 miễn phí mà không cần product key

    Những cách đơn giản để kích hoạt Windows 11 miễn phí mà không cần product key

    Chia sẻ kích hoạt Windows 11 bằng key KMS client miễn phí gồm các bước hoàn toàn giống với hướng dẫn cách kích hoạt Windows 10 miễn phí, chỉ khác là lần này mình thực hiện trên Windows 11.

  • Miễn phí 9 nền tảng headless CMS lưu trữ trên Git cho các Blog website đơn giản

    Miễn phí 9 nền tảng headless CMS lưu trữ  trên Git cho các Blog website đơn giản

    Đây là một chủ đề cực kỳ hữu ích cho các dev hiện đại, đặc biệt là những ai đang chuyển từ WordPress sang mô hình headless CMS. Nếu CMS truyền thống là tất cả trong một (cả backend lẫn frontend), thì headless CMS chỉ tập trung vào phần quản lý nội dung (backend), còn phần hiển thị (frontend) sẽ do bạn tự do chọn framework hoặc build theo ý muốn.